给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。
思路
参见 LeetCode-Tree-230-M:二叉搜索树中第K小的元素
解法
class Solution {
int value = 0, k1=0;
public int kthSmallest(TreeNode root, int k) {
//inOrder + count
k1 = k;
kthSmallest2(root);
return value;
}
void kthSmallest2(TreeNode root) {
if(root == null){
return ;
}
kthSmallest2(root.left);
k1--;
if(k1 == 0){
value = root.val;
}
kthSmallest2(root.right);
}
}
本文介绍了一种在二叉搜索树中查找第K小元素的有效算法。通过使用中序遍历加计数的方法,可以准确地找到目标节点。此算法在处理大量数据时表现出高效性。

229

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



