在二叉树中找到两个节点的最近公共祖先
依旧采用通用的解法。
public int lowestCommonAncestor (TreeNode root, int o1, int o2) {
// write code here
TreeNode node=dfs(root,o1,o2);
return node.val;
}
public TreeNode dfs(TreeNode root,int p,int q){
if(root==null||root.val==p||root.val==q) return root;
TreeNode left=dfs(root.left,p,q);
TreeNode right=dfs(root.right,p,q);
if(left==null) return right;
if(right==null) return left;
return root;
}