码迷,mamicode.com
首页 > 其他好文 > 详细

二叉树最近公共祖先

时间:2020-07-23 22:15:14      阅读:77      评论:0      收藏:0      [点我收藏+]

标签:mamicode   tor   loading   binary   ||   src   后序   class   bin   

技术图片

技术图片

思路:后序遍历

分情况讨论:

1、两个节点在根的左侧

2、两个节点在根的右侧

3、两个节点在根的左右两侧

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
        if(root==q||root==p||root == null) return root;//找到或者没找到都进行返回继续递归
        TreeNode l = lowestCommonAncestor(root.left,p,q);
        TreeNode r = lowestCommonAncestor(root.right,p,q);
        if(l==null) return r;//两个节点都不在左子树
        if(r==null) return l;//两个节点都不在右子树
        return root;//两个节点一左一右
    }
}

二叉树最近公共祖先

标签:mamicode   tor   loading   binary   ||   src   后序   class   bin   

原文地址:https://www.cnblogs.com/cstdio1/p/13367727.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!