爪哇中二叉树的最低公共祖先(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树教程:
- 爪哇中的二叉树
- 二叉树预遍历
- 二叉树后置遍历
- 二叉树有序遍历
- 二叉树级顺序遍历
- 二叉树螺旋阶遍历
- 二叉树反向级别顺序遍历
- 二叉树边界遍历
- 打印二叉树的叶竞彩篮球分析
- 计算二叉树中的叶竞彩篮球分析
- 获取二叉树中的最大元素
- 在二叉树中打印从根到叶的所有路径
- 在Java中打印二叉树的垂直和
- 在Java中获取二叉树中的竞彩篮球分析级别
- 爪哇中二叉树中的最低公共祖先(LCA)
请通过 爪哇面试程序 有关更多此类程序。