Tree 第k最小元素
我想找到第k个最小的元素。而且,不要寻找额外的空间 我写了这篇文章,但没有得到实际的输出Tree 第k最小元素,tree,binary-tree,Tree,Binary Tree,我想找到第k个最小的元素。而且,不要寻找额外的空间 我写了这篇文章,但没有得到实际的输出 /** * Definition for binary tree * class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { * val = x; * left=null; * right=null; * }
/**
* Definition for binary tree
* class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) {
* val = x;
* left=null;
* right=null;
* }
* }
*/
public class Solution {
public int kthsmallest(TreeNode A, int B) {
int find=kth(A,B,-1);
System.out.println(find);
return find;
}
public static int kth(TreeNode A,int B,int val)
{
// System.out.print("k "+k);
if(val!=-1)
return val;
if(A==null)
{
return -1;
}
kth(A.left,B,val);
B--;
if(0==B)
{
val=A.val;
//System.out.print("bbbb"+val);
return A.val;
}
//System.out.print(" :k lv: "+k);
kth(A.right,B,val);
if(0==B)
{
val=A.val;
//System.out.print("xdf"+val);
return A.val;
}
return val;
}
}
问题是,在找到元素后,您不会传播它。 更换线路:
kth(A.left,B,val);
与:
同样适用于:
kth(A.right,B,val);
问题是,在找到元素后,您不会传播它。 更换线路:
kth(A.left,B,val);
与:
同样适用于:
kth(A.right,B,val);