236. Lowest Common Ancestor of a Binary Tree
寻找二叉树中给定两个节点的公共祖先。
很好的一道题目,有助于我们理解递归的操作,一般情况下,二叉树的问题基本都是使用递归来解决的。一开始并不明白真实的递归操作,但是自己画一个二叉树,然后仔细想一想具体的操作流畅就可以明白了,还是得多练习。
public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
if(root==null||root==p||root==q){
return root;
}
TreeNode left=lowestCommonAncestor(root.left,p,q);
TreeNode right=lowestCommonAncestor(root.right,p,q);
//eft=left==null?right:left;
if (left!=null&&right!=null) {
return root;
}
return left!=null?left:right;
}