public class Main(){
private static int getLCA(TreeNode root,TreeNode x,TreeNode y){
if(root.equals(x)&&root.equals(y))return root;
boolean x_on_left=cover(root.left,x);
boolean y_on_right=cover(root.right,y);
if(x_on_left==y_on_right){
return root;
}else if(x_on_left){
return getLCA(root.left,x,y);
}else{
return getLCA(root.right,x,y);
}
}
public static boolean cover(TreeNode node,TreeNode x){
if(node==null)return false;
if(node.equals(x))return true;
return cover(node.left,x)||cover(node.right,x);
}
}
求两节点的公共祖先
最新推荐文章于 2021-09-06 19:51:33 发布