爪哇2博客
爪哇2博客

爪哇中二叉树的最低公共祖先(LCA)

如果您想练习数据结构和算法程序,可以通过 数据结构和算法面试题.

在本文中,我们将看到如何在二叉树中找到两个竞彩篮球分析的最低公共祖先(LCA)。让我们用例子来理解。

如您在这里看到的,LCA只是两个竞彩篮球分析的最低公共父竞彩篮球分析。

递归算法(对于竞彩篮球分析A和B):

  • 如果node为null,则将其返回
  • 如果找到A或B,则将其返回。
  • 遍历左子树和右子树
  •  如果任何一个竞彩篮球分析的左右两边都不为空,则它将是两个给定竞彩篮球分析的最低共同祖先
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
上市 静态的 树竞彩篮球分析 最低共同祖先(树竞彩篮球分析 , 树竞彩篮球分析 a, 树竞彩篮球分析 b) {
        如果( == 空值)
            返回 空值;
        如果(.数据 == a.数据 || .数据 == b.数据 )
            返回 ;
 
        树竞彩篮球分析 剩下=最低共同祖先(.剩下,a,b);
        树竞彩篮球分析 =最低共同祖先(.,a,b);
 
        //如果左右不为null,则a和b为lca
        如果(剩下!= 空值 && != 空值)
            返回 ;
        如果(剩下== 空值)
            返回 ;
        其他
            返回 剩下;
 
    }
 

完整的Java程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
 
组织.Arpit.爪哇2blog.二叉树;
 
上市 二叉树 {
    上市 静态的 树竞彩篮球分析
    {
        整型 数据;
        树竞彩篮球分析 剩下;
        树竞彩篮球分析 ;
        树竞彩篮球分析(整型 数据)
        {
            这个.数据=数据;
        }
    }
 
    上市 静态的 树竞彩篮球分析 最低共同祖先(树竞彩篮球分析 , 树竞彩篮球分析 a, 树竞彩篮球分析 b) {
        如果( == 空值)
            返回 空值;
        如果(.数据 == a.数据 || .数据 == b.数据 )
            返回 ;
 
        树竞彩篮球分析 剩下=最低共同祖先(.剩下,a,b);
        树竞彩篮球分析 =最低共同祖先(.,a,b);
 
        //如果左右不为null,则a和b为lca
        如果(剩下!= 空值 && != 空值)
            返回 ;
        如果(剩下== 空值)
            返回 ;
        其他
            返回 剩下;
 
    }
    上市 静态的 虚空 主要([] args)
    {
        //创建一个二叉树
        树竞彩篮球分析 根竞彩篮球分析=createBinaryTree();
        系统..打印(“竞彩篮球分析5和30的最低共同祖先:”);
        树竞彩篮球分析 竞彩篮球分析5= 树竞彩篮球分析(5);
        树竞彩篮球分析 竞彩篮球分析30= 树竞彩篮球分析(30);
        系统..打印(最低共同祖先(根竞彩篮球分析,竞彩篮球分析5,竞彩篮球分析30).数据);
 
    }
 
    上市 静态的 树竞彩篮球分析 createBinaryTree()
    {
 
        树竞彩篮球分析 根竞彩篮球分析 = 树竞彩篮球分析(40);
        树竞彩篮球分析 竞彩篮球分析20= 树竞彩篮球分析(20);
        树竞彩篮球分析 竞彩篮球分析10= 树竞彩篮球分析(10);
        树竞彩篮球分析 竞彩篮球分析30= 树竞彩篮球分析(30);
        树竞彩篮球分析 竞彩篮球分析60= 树竞彩篮球分析(60);
        树竞彩篮球分析 竞彩篮球分析50= 树竞彩篮球分析(50);
        树竞彩篮球分析 竞彩篮球分析70= 树竞彩篮球分析(70);
        树竞彩篮球分析 竞彩篮球分析5= 树竞彩篮球分析(5);
        树竞彩篮球分析 竞彩篮球分析45= 树竞彩篮球分析(45);
        树竞彩篮球分析 竞彩篮球分析55= 树竞彩篮球分析(55);
 
        根竞彩篮球分析.剩下=竞彩篮球分析20;
        根竞彩篮球分析.=竞彩篮球分析60;
 
        竞彩篮球分析20.剩下=竞彩篮球分析10;
        竞彩篮球分析20.=竞彩篮球分析30;
 
        竞彩篮球分析60.剩下=竞彩篮球分析50;
        竞彩篮球分析60.=竞彩篮球分析70;
 
        竞彩篮球分析10.剩下=竞彩篮球分析5;
        竞彩篮球分析50.=竞彩篮球分析55;
        返回 根竞彩篮球分析;
    }
}
 

当您运行上述程序时,将获得以下输出:

1
2
3
4
 
最低 共同 祖先 对于 竞彩篮球分析 5 30:
20
 

爪哇 Binary树教程:

请通过 爪哇面试程序 有关更多此类程序。


导入联系人

您可能还喜欢:

分享这个

作者

关注作者

相关文章

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *

订阅我们的新闻

获取质量教程到您的收件箱。现在订阅。


成为朋友

©2020 爪哇2博客