给定一颗二叉搜索树,请找出其中的第k小的结点。例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。
/*
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null; public TreeNode(int val) {
this.val = val; } }
*/
public class Solution {
int cnt = 0;
TreeNode cnode = null;
TreeNode KthNode(TreeNode pRoot, int k) {
if (pRoot == null || k == 0)
return null; pre(pRoot, k);
return cnode;
} void pre(TreeNode node, int k) {
if (node == null)
return ; pre(node.left, k);
cnt ++;
if (cnt == k) {
cnode = node;
return ;
}
pre(node.right, k);
return ;
}
}