输入:4,5。输出:2。
输入:4,9。输出:1.
从root开始遍历,如果n1和n2中的任一个和root匹配,那么root就是LCA。 如果都不匹配,则分别递归左、右子树,如果有一个 key(n1或n2)出现在左子树,并且另一个key(n1或n2)出现在右子树,则root就是LCA. 如果两个key都出现在左子树,则说明LCA在左子树中,否则在右子树。
public class Test16 {
static class Node {
int val;
Node left, right;
public Node(int val, Node left, Node right) {
this.val = val;
this.left = left;
this.right = right;
}
}
public static Node findLowestCommonAncestor(Node head, int n1, int n2) {
if (head == null) {