1 二叉树最近的公共祖先
对上面几行代码的解释
这行代码等价于下面几行代码。加粗样式
public class TreeInterview3 {
public static class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode (int x ) { val = x; }
}
private TreeNode lca = null;
public TreeNode lowestCommonAncestor(TreeNode root,TreeNode p,TreeNode q) {
if (root== null) {
return null;
}
findNode (root,p,q);
return lca;
}
private boolean findNode(TreeNode root, TreeNode p, TreeNode q) {
if (root == null) {
return false;
}
int left = findNode(root.left,p,q) ? 1 :0;
int right = findNode(root.right,p,q) ? 1 :0;
int mid = (root == q || root == p) ? 1: 0;
if(left + right + mid == 2) {
lca = root;
}
// if ((left == 1 && right == 1 && mid == 0)
// || (left == 0 && right == 1 && mid == 1)
// || (left == 1 && right == 0 && mid == 1)) {
// lca = root;
// }
return (left + right +mid) > 0 ;
//找到p或者q就返回true
//没有找到p也没有找到q就返回 false
}
}
不知道为什么,在力扣上运行的时候会报错,把别人的程序放进去依然报错。
问题没有得到解决。