230. 二叉搜索树中第 K 小的元素
-
解题思路:二叉搜索树,中序遍历,就是有序的,就可以依次得到第K小的数了
-
代码
class Solution: # 中序遍历 就是从小到大遍历 def kthSmallest(self, root: Optional[TreeNode], k: int) -> int: stack = [] stack.append(root) # 中序遍历 左中右 while stack: head = stack.pop() if head: # 不为空 不能弹 # 右 中 左 使用None标记中 if head.right: stack.append(head.right) stack.append(head) stack.append(None) if head.left: stack.append(head.left) else: # 弹出 if k == 1: return stack.pop().val k -= 1 stack.pop() return -1

浙公网安备 33010602011771号