二叉搜索树的第k个结点
给定一棵二叉搜索树,请找出其中的第k小的结点。
你可以假设树和k都存在,并且1≤k≤树的总结点数。
样例
输入:root = [2, 1, 3, null, null, null, null] ,k = 3
2
/ \
1 3
输出:3
DFS
时间复杂度O(n)
class Solution {
int index = 0;
public TreeNode kthNode(TreeNode root, int k) {
if(root != null){
TreeNode node = kthNode(root.left,k);
if(node != null){
return node;
}
index++;
if(index == k){
return root;
}
node =kthNode(root.right,k);
if(node != null){
return node;
}
}
return null;
}
}