[LeetCode 235] Lowest Common Ancestor of a Binary Search Tree
来源:互联网 发布:php相册源码 编辑:程序博客网 时间:2024/05/21 08:57
Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BST.
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).”
_______6______ / \ ___2__ ___8__ / \ / \ 0 _4 7 9 / \ 3 5
For example, the lowest common ancestor (LCA) of nodes 2
and 8
is 6
. Another example is LCA of nodes 2
and 4
is 2
, since a node can be a descendant of itself according to the LCA definition.
Solution:
1use property of BST
public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { if((root.val>=p.val && root.val<=q.val)||(root.val<=p.val && root.val>=q.val)) return root; if(root.val>=p.val && root.val>=q.val){ return lowestCommonAncestor(root.left, p, q); } return lowestCommonAncestor(root.right, p, q); }
public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { if(root == null) return null; int max = root.val; int min = root.val; TreeNode t1 = root; while(t1!=null){ min = t1.val; t1 = t1.left; } t1 = root; while(t1!=null){ max = t1.val; t1 = t1.right; } if(p.val>q.val && (min>q.val || max<p.val)) return null; if(q.val>p.val && (min>p.val || max<q.val)) return null; if((root.val>=p.val && root.val<=q.val)||(root.val<=p.val && root.val>=q.val)) return root; if(root.val>=p.val && root.val>=q.val){ return lowestCommonAncestor(root.left, p, q); } return lowestCommonAncestor(root.right, p, q); }
0 0
- leetcode 235: Lowest Common Ancestor of a Binary Search Tree
- 【LeetCode】235 Lowest Common Ancestor of a Binary Search Tree
- leetcode 235 Lowest Common Ancestor of a Binary Search Tree
- leetcode-235-Lowest Common Ancestor of a Binary Search Tree
- leetcode[235]:Lowest Common Ancestor of a Binary Search Tree
- LeetCode 235: Lowest Common Ancestor of a Binary Search Tree
- [leetcode 235]Lowest Common Ancestor of a Binary Search Tree
- leetCode #235 Lowest Common Ancestor of a Binary Search Tree
- [LeetCode 235] Lowest Common Ancestor of a Binary Search Tree
- Leetcode 235 Lowest Common Ancestor of a Binary Search Tree
- Leetcode #235 Lowest Common Ancestor of a Binary Search Tree
- LeetCode(235) Lowest Common Ancestor of a Binary Search Tree
- leetcode 235: Lowest Common Ancestor of a Binary Search Tree
- leetcode: (235) Lowest Common Ancestor of a Binary Search Tree
- LeetCode 235: Lowest Common Ancestor of a Binary Search Tree
- LeetCode 235: Lowest Common Ancestor of a Binary Search Tree
- LeetCode 235:Lowest Common Ancestor of a Binary Search Tree
- LeetCode 235 Lowest Common Ancestor of a Binary Search Tree
- 雅各比迭代法
- POJ2528,线段树+离散化
- ajax常见错误和使用总结
- android学习笔记1 - 搭建android开发环境
- 【微信】网页授权,获取CODE,OPENID,
- [LeetCode 235] Lowest Common Ancestor of a Binary Search Tree
- 自定义UITableViewCell勾选框的保持
- MySQL创建表结构里面的那个长度对于整型的作用
- oracle实现查询每一个部门的员工工资排在前三的员工的基本信息详细举例
- CAS:Compare And Swap 无锁
- eclipse 搭建activiti5.17项目生成流程过程
- Intent(8.19)
- 九度OJ 题目1065:输出梯形
- POJ -3414-Pots