p********2 发帖数: 123 | 1 假设2个node都存在BST中
TreeNode findFirstCommonAncestor(TreeNode root, int p, int q) {
if (root == null) {
return null;
}
if (root.value == p || root.value == q) {
return root;
}
if (root.value > p && root.value > q ) {
return findFirstCommonAncestor(root.left, p, q);
}
else if (root.value < p && root.value < q ) {
return findFirstCommonAncestor(root.right, p, q);
}
else {
return root;
}
} | k****r 发帖数: 807 | 2 如果两个node都在bst里面,第一个判断就没必要了。 | l*****a 发帖数: 14598 | 3 please use while loop instead of recusion
【在 p********2 的大作中提到】 : 假设2个node都存在BST中 : TreeNode findFirstCommonAncestor(TreeNode root, int p, int q) { : if (root == null) { : return null; : } : if (root.value == p || root.value == q) { : return root; : } : if (root.value > p && root.value > q ) { : return findFirstCommonAncestor(root.left, p, q);
|
|