剑指 Offer 第68-2题: 二叉树的最近公共祖先

2022-08-12  本文已影响0人  放开那个BUG

1、前言

题目描述

2、思路

父节点可能在左边、右边、或者共同的父。

3、代码

class Solution {
    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);

        if(left != null && right != null){
            return root;
        }
        
        return left == null ? right : left;
    }
}
上一篇 下一篇

猜你喜欢

热点阅读