public class Solution {
int count = 0;
TreeNode KthNode(TreeNode pRoot, int k) {
if (pRoot == null || k == 0) {
return null;
}
TreeNode node = KthNode(pRoot.left, k);
if (node != null) return node;
count++;
if (count == k) return pRoot;
node = KthNode(pRoot.right, k);
if (node != null) return node;
return null;
}
}
public class Solution {
TreeNode KthNode(TreeNode pRoot, int k) {
if (pRoot == null || k == 0) return null;
Stack<TreeNode> s = new Stack<>();
TreeNode p = pRoot;
while (p != null || !s.empty()) {
if (p != null)
{
s.push(p);
p = p.left;
} else
{
k--;
p = s.pop();
if (k == 0) return p;
p = p.right;
}
}
return null;
}
}
题源:www.nowcoder.com/practice/57…