温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

二叉树的最近公共祖先该怎么理解

发布时间:2021-12-13 16:23:36 来源:亿速云 阅读:322 作者:柒染 栏目:大数据

二叉树的最近公共祖先该怎么理解,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

题目:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。

三种情况讨论:

如果p和q分别是root的左右节点,那么root就是我们要找的最近公共祖先
如果p和q都是root的左节点,那么返回lowestCommonAncestor(root.left,p,q)
如果p和q都是root的右节点,那么返回lowestCommonAncestor(root.right,p,q)
 

class   Solution {

      public   TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {

          if  (root == null)   return   root;

          if  (p == root || q == root)   return   root;

        TreeNode rleft = lowestCommonAncestor(root.left, p, q);

        TreeNode rright = lowestCommonAncestor(root.right, p , q);

          if  (rleft == null)   return   rright;

          if  (rright == null)   return   rleft;

          return   root;   // 此时是 p 和 q 节点再root节点的 左右两边

    }

}

关于二叉树的最近公共祖先该怎么理解问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI