LeetCode热题100-二叉搜索树中第 K 小的元素
给定一个二叉搜索树的根节点root和一个整数k请你设计一个算法查找其中第k小的元素k从 1 开始计数。示例 1输入root [3,1,4,null,2], k 1输出1方法一中序遍历获取排序结果然后取第k的数字即可。class Solution: def kthSmallest(self, root: Optional[TreeNode], k: int) - int: res [] def inorder(node): if not node: return inorder(node.left) res.append(node.val) inorder(node.right) inorder(root) return res[k-1]方法二循环找到最左节点然后一个个遍历找到第K的值。class Solution: def kthSmallest(self, root: Optional[TreeNode], k: int) - int: stack [] cur root while cur or stack: while cur: stack.append(cur) cur cur.left cur stack.pop() k - 1 if k 0: return cur.val cur cur.right return 0