36.二叉搜索树的第K个节点
给定一棵二叉搜索树,请找出其中的第k小的结点。
你可以假设树和k都存在,并且1≤k≤树的总结点数。
样例
输入:root = [2, 1, 3, null, null, null, null] ,k = 3
2
/ \
1 3
输出:3
思路
中序遍历二叉树序列的第k个节点就是第k小的节点。
class Solution {
//计数
int count=0;
//存放结果
TreeNode kNode=null;
public TreeNode kthNode(TreeNode root, int k) {
if(root==null || k<0) return null;
kthNode(root.left,k);
count++;
if(count==k) kNode=root;
kthNode(root.right,k);
return kNode;
}
}