[程序员代码面试指南]二叉树问题-找到二叉树中两节点最近公共祖先

Posted coding-gaga

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[程序员代码面试指南]二叉树问题-找到二叉树中两节点最近公共祖先相关的知识,希望对你有一定的参考价值。

题解

法一:后序遍历。搞清返回值逻辑。

todo

更新别的方法

法一代码

public class Parent 
    public static void main(String args[]) 
        Node n1=new Node(1);
        Node n2=new Node(2);
        Node n3=new Node(3);
        Node n4=new Node(4);
        n1.left=n2;
        n1.right=n3;
        n3.left=n4;
        System.out.print(firstParent(n1,n3,n4).val);
    
    
    public static Node firstParent(Node root,Node node1,Node node2) 
        if(root==null||root==node1||root==node2) 
            return root;
        
        Node leftNode=firstParent(root.left,node1,node2);
        Node rightNode=firstParent(root.right,node1,node2);
        if(leftNode!=null&&rightNode!=null) 
            return root;
        
        if(leftNode==null&&rightNode==null) 
            return null;
        
        else 
            return leftNode!=null?leftNode:rightNode;
        
    

以上是关于[程序员代码面试指南]二叉树问题-找到二叉树中两节点最近公共祖先的主要内容,如果未能解决你的问题,请参考以下文章

最强解析面试题:二叉树两节点最大距离

[程序员代码面试指南]二叉树问题-计算完全二叉树节点数

11.求二叉树中节点的最大距离

#yyds干货盘点# 面试必刷TOP101:在二叉树中找到两个节点的最近公共祖先

[程序员代码面试指南]二叉树问题-派对的最大快乐值

在给定二叉树中的两个值的情况下找到最不共同的祖先[关闭]