230. Kth Smallest Element in a BST
class Solution {
public int kthSmallest(TreeNode root, int k) {
// 中序遍历递归递归函数调用本身 或者迭代方法
//迭代是在一个for或者while循环中包含一个代码块,
//for循环有具体的循环次数,while是达到某个条件终止循环, 以下迭代
Stack<TreeNode> stack = new Stack();
while(root != null) {
stack.push(root);
root = root.left;
}
while(k != 0) {
TreeNode curNode = stack.pop();
k--;
if(k == 0) {
return curNode.val;
}
TreeNode right = curNode.right;
while(right != null) {
stack.push(right);
right = right.left;
}
}
return -1;
}
}