首页 > 代码库 > 求两个节点的最低公共祖先
求两个节点的最低公共祖先
tag: 二叉树
思路一: 分治
思路二:非递归???
package com.zhaochao.tree; /** * Created by zhaochao on 17/1/24. * lowest common ancestor */ public class LCA { // 在root为根的二叉树中找A,B的LCA: // 如果找到了就返回这个LCA // 如果只碰到A,就返回A // 如果只碰到B,就返回B // 如果都没有,就返回null public TreeNode LCARec(TreeNode root, TreeNode rootA, TreeNode rootB) { if(root == null || root == rootA || root == rootB) { return root; } TreeNode left = LCARec(root.left, rootA, rootB); TreeNode right = LCARec(root.right, rootA,rootB); if(left != null && right != null) { return root; } if(left != null) { return left; } if(right != null) { return right; } return null; } }
求两个节点的最低公共祖先
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。