美文网首页
算法:二叉树中两个节点的最近公共祖先

算法:二叉树中两个节点的最近公共祖先

作者: 大成小栈 | 来源:发表于2021-10-18 13:54 被阅读0次

    给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。
    输入:root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1
    输出:3(节点5 和 节点1 的最近公共祖先是节点 3 )

    class Solution {
        public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
             if(root == null){
                 return null;
             }
             if(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;
            }
            if(left!=null){
                return left;
            }
            if(right!=null){
                return right;
            }
            return null;
        }
    }
    

    相关文章

      网友评论

          本文标题:算法:二叉树中两个节点的最近公共祖先

          本文链接:https://www.haomeiwen.com/subject/dshnoltx.html