236. Lowest Common Ancestor of a Binary Tree
来源:互联网 发布:期货升贴水原因知乎 编辑:程序博客网 时间:2024/05/16 15:25
Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree.
According to the definition of LCA on Wikipedia: “The lowest common ancestor is defined between two nodes v and w as the lowest node in T that has both v and w as descendants (where we allow a node to be a descendant of itself).”
_______3______ / \ ___5__ ___1__ / \ / \ 6 _2 0 8 / \ 7 4
For example, the lowest common ancestor (LCA) of nodes 5
and 1
is 3
. Another example is LCA of nodes 5
and 4
is 5
, since a node can be a descendant of itself according to the LCA definition.
这个题目是找二叉树两个节点的公共祖先,之前有一个题目是二叉搜索树。相比,二叉搜索树显然更容易,因为节点大小是有序的。
需要多考虑的一个问题就是 如果给定的两个节点中有一个恰就是最近公共祖先,那么在搜寻另一个分支时是搜索不到结果的也就是返回null;
如果某一支返回null且同级的另一个含有目标值,当两侧有两个目标值在某一级相遇时说明这时的根节点是公共祖先
返回值从最底层不断向上走 直到两侧都相遇找到公共祖先
__3______ / \ ___5__ ___1__ / \ / \ 6 _2 0 8 / \ 3 4
public class Solution { public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { if(root==null) return null; if(root==p||root==q) return root; TreeNode left=lowestCommonAncestor(root.left,p,q); TreeNode right=lowestCommonAncestor(root.right,p,q); if(left!=null&&right!=null) return root ; return left==null?right:left; } }
- Lowest Common Ancestor of a Binary Tree
- Lowest Common Ancestor of a Binary Tree
- Lowest Common Ancestor of a Binary Tree
- Lowest Common Ancestor of a Binary Tree
- Lowest Common Ancestor of a Binary Tree
- Lowest Common Ancestor of a Binary Tree
- Lowest Common Ancestor of a Binary Tree
- Lowest Common Ancestor of a Binary Tree
- Lowest Common Ancestor of a Binary Tree
- Lowest Common Ancestor of a Binary Tree(***)
- Lowest Common Ancestor of a Binary Tree
- Lowest Common Ancestor of a Binary Tree
- Lowest Common Ancestor of a Binary Tree
- Lowest Common Ancestor of a Binary Tree
- Lowest Common Ancestor of a Binary Tree
- Lowest Common Ancestor of a Binary Tree
- Lowest Common Ancestor of a Binary Tree
- Lowest Common Ancestor of a Binary Tree
- C++容器
- linux RTC 驱动模型分析
- angularjs表单验证
- Python 更加抽象
- selenium环境搭建
- 236. Lowest Common Ancestor of a Binary Tree
- javaWeb项目的classpath说明
- java数据结构-说明
- 模式匹配
- CVPR 2016-10-7
- 有关fetch跨域问题
- 正差值
- HashSet实现是无序的测试
- cloudstack 4.3.2版本手动配置虚拟机IP不生效问题