gpt4 book ai didi

java - 树中大于 x 的最小元素

转载 作者:太空宇宙 更新时间:2023-11-04 10:48:59 25 4
gpt4 key购买 nike

如果我想找到树中大于元素 x 的最小元素,这是正确的方法吗?

class Node {
int data;
Node left, right;
}

Node root;

public Integer successorOf(int x) {
return successorOf(x, root);
}

private Integer successorOf(int x, Node n) {
if (n == null) {
return null;
}
if (x < n.data) {
Integer res = successorOf(x, n.left);
if (res == null)
res = n.data;
return res;
} else {
return successorOf(x, n.right);
}
}

我觉得这个解决方案没有检查整个树。

非常感谢您的帮助!

最佳答案

您可以使用中序遍历按升序获取元素,如果找到大于所需的元素,则您找到了答案

private int answer = -1;          // to store the answer

traverse(root,x,0) // call this method

public void traverse(Node n,int x,int flag){

if(n == null || flag == 1){ // flag=1 meaning we already found the answer
return;
}
traverse(n.left,x,flag);
if(n.data>x){ // smallest value greater than x
answer=n.data; // store the answer
flag = 1; // mark flag = 1, to make subsequent calls
} // return from the function
traverse(n.right,x,flag);

}

关于java - 树中大于 x 的最小元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48043703/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com