Python, C++, JavaScript, SQL 및 TypeScript의 다양한 LeetCode 솔루션을 살펴보세요. 여러 프로그래밍 언어로 인터뷰 준비, 학습 및 코드 연습에 적합합니다. Github 레포 링크
주어진 뿌리
이진 검색 트리와 정수 케이
, 반품 그만큼 케이 번째
가장 작은 값 (1-인덱싱됨) 트리의 모든 노드의 값 중.
예시 1:
입력: 루트 = [3,1,4,null,2], k = 1 산출: 1
예 2:
입력: 루트 = [5,3,6,2,4,null,null,1], k = 3 산출: 3
제약:
- 트리의 노드 수는
N
. 1 <= k <= n <= 10 4
0 <= 노드.val <= 10 4
후속 조치: BST가 자주 수정되는 경우(즉, 삽입 및 삭제 작업이 가능한 경우) k번째로 작은 값을 자주 찾아야 하는 경우 어떻게 최적화할 수 있을까요?
파이썬
# 이진 트리 노드에 대한 정의. import List, Optional 클래스 TreeNode를 입력하여: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left self.right = right 클래스 해결책: def addToArr(self, node: Optional[TreeNode], treeList: List[int]) -> None: if node: self.addToArr(node.left, treeList) treeList.append(node.val) self.addToArr(node.right, treeList) def kthSmallest(self, root: Optional[TreeNode], k: int) -> int: result = [] self.addToArr(root, result) return result[k-1]