二叉树的最近公共祖先 LeetCode 236|刷题打卡

159 阅读1分钟

题目

题解

见注释

代码

public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
    //root为空或者p和q有一个结点再root结点返回root
    if(root==null||root==p||root==q){
        return root;
    }
    //左子树递归
    TreeNode left=lowestCommonAncestor(root.left,p,q);
    //右子树递归
    TreeNode right=lowestCommonAncestor(root.right,p,q);
    //每次递归完看p和q在不在root结点

    if(left==null){
        return right;
    }
    if(right==null){
        return left;
    }
    return root;
}

备注

本文正在参与「掘金 2021 春招闯关活动」, 点击查看