Kth Smallest Element in a BST"/>
Leetcode 230 +Kth Smallest Element in a BST
Leetcode 230 +Kth Smallest Element in a BST
题目描述
Given a binary search tree, write a function kthSmallest to find the kth smallest element in it.
Note:
You may assume k is always valid, 1 ≤ k ≤ BST’s total elements.
Example 1:
Input: root = [3,1,4,null,2], k = 13/ \1 4\2
Output: 1
Example 2:
Input: root = [5,3,6,2,4,null,null,1], k = 35/ \3 6/ \2 4/1
Output: 3
Follow up:
What if the BST is modified (insert/delete operations) often and you need to find the kth smallest frequently? How would you optimize the kthSmallest routine?
来源:力扣(LeetCode)
链接:
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
思路解析
def kthSmallest(self, root: TreeNode, k: int) -> int:if root is None:return rootstack = []container = []curr = rootwhile curr or len(stack):if curr is not None:stack.append(curr)curr = curr.leftelse:node = stack.pop()container.append(node.val)if len(container) == k:breakcurr = node.rightreturn container.pop()
更多推荐
Leetcode 230 +Kth Smallest Element in a BST
发布评论