Wenn ich das kleinste Element in einem Baum finden möchte, das größer als ein Element x ist, wäre das ein richtiger Weg?Kleinstes Element im Baum, das größer ist als 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);
}
}
Ich fühle mich wie diese Lösung nicht den gesamten Baum überprüfen.
Hilfe wird sehr geschätzt!
Duplizieren von [finden Um größte Element kleiner als K in einem BST] (https://stackoverflow.com/q/6334514) (muss nur die Logik umdrehen) oder [Reihenfolge der Nachfolger in der binären Suchstruktur] (https://stackoverflow.com/q/5471731) (es ist nicht ganz klar, was du verlangst). – Dukeling