给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。
public class Solution {
int time = 0;
TreeNode KthNode(TreeNode pRoot, int k) {
if (pRoot == null || k == 0) {
return null;
}
return KNode(pRoot, k);
}
private TreeNode KNode(TreeNode pRoot, int k) {
TreeNode target = null;
if (pRoot.left != null)
target = KthNode(pRoot.left, k);
time++;
if (target == null) {
if (k == time)
target = pRoot;
}
if (target == null && pRoot.right != null)
target = KthNode(pRoot.right, k);
return target;
}
}