int res;
int k;
public int kthSmallest(TreeNode root, int k) {
res = 0;
this.k = k;
inOrder(root);
return res;
}
public void inOrder(TreeNode node) {
if (node == null) return;
inOrder(node.left);
k--;
if (k == 0) {
res = node.val;
} else if (k < 0) {
return;
}
inOrder(node.right);
}
public int kthSmallest(TreeNode root, int k) {
Deque<TreeNode> stack = new ArrayDeque<>();
TreeNode curr = root;
while (!stack.isEmpty() || curr != null) {
while (curr != null) {
stack.push(curr);
curr = curr.left;
}
curr = stack.pop();
if (--k == 0) {
return curr.val;
}
curr = curr.right;
}
return -1;
}
230. 二叉搜索树中第K小的元素
最新推荐文章于 2022-07-18 15:53:54 发布