一,题目描述
二,思路和代码
递归找到左子树中等于null或者q或者p节点,递归找到右子树等于null或者p或者q的节点,
(1)如果左边,右边递归结果都不等于null返回root
(2)如果左边递归结果等于null返回右边
(3)如果右边递归结果等于null返回左边
class Solution {
public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
if(root==null||root==p||root==q){
return root;
}
TreeNode leftNode= lowestCommonAncestor(root.left,p,q);
TreeNode rightNode=lowestCommonAncestor(root.right,p,q);
if(leftNode!=null&&rightNode!=null){
return root;
}
if(leftNode==null){
return rightNode;
}else{
return leftNode;
}
}
}