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;
}
}
本文介绍了一种在二叉搜索树中查找第K小节点的方法,通过中序遍历二叉树,可以有效地找到目标节点。样例展示了如何使用此方法解决具体问题。
650

被折叠的 条评论
为什么被折叠?



