leetcode:Lowest Common Ancestor of a Binary Search Tree
2015-09-18 10:42
351 查看
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).”
For example, the lowest common ancestor (LCA) of nodes
Another example is LCA of nodes
since a node can be a descendant of itself according to the LCA definition.
Have you met this question in a real interview
题目分析:求给定二叉排序树的最近公共祖先
1.当一个节点的值大于等于根节点,另一个节点的值小于等于根节点,则返回根节点
2. 当两个节点的值都小于根节点,在根节点的左边遍历搜索
3. 当两个节点的值都大于根节点,在根节点的右边遍历搜索
代码如下:
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
2and
8is
6.
Another example is LCA of nodes
2and
4is
2,
since a node can be a descendant of itself according to the LCA definition.
Have you met this question in a real interview
题目分析:求给定二叉排序树的最近公共祖先
1.当一个节点的值大于等于根节点,另一个节点的值小于等于根节点,则返回根节点
2. 当两个节点的值都小于根节点,在根节点的左边遍历搜索
3. 当两个节点的值都大于根节点,在根节点的右边遍历搜索
代码如下:
public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { if((p.val<=root.val&&q.val>=root.val)||(p.val>=root.val&&q.val<=root.val)) return root; else if(p.val<root.val&&q.val<root.val) { return lowestCommonAncestor(root.left,p,q); } else { return lowestCommonAncestor(root.right,p,q); } }
相关文章推荐
- LCD显示相关知识
- EPUB.js 解决图片裁剪问题(缩放问题)
- C# 自定义控件中的Invalidate() 方法 详解
- 关于ajax后台success传来json数据的问题
- EPUB.js 解决图片裁剪问题(缩放问题)
- 【转】shell 教程——05 第一个Shell脚本
- ASP.NET如何使用JSON
- 21-EMM Procedure - 10 & 11. Move to Another City and Attach
- 二叉树建立和遍历
- codeforces #315B. Symmetric and Transitive dp
- Appium 测试,实现上下左右滑动页面
- js去掉文本前后空格与阻止表单提交
- 如何判断用户是否登录
- 引用与指针的异同-基础篇
- ASP.NET如何使用JSON
- 脚本乐园 shell 中对小数进行比较的方法总结
- Linux操作系统中FastDFS部署手册
- First Bad Version
- 20-EMM Procedure 8&9. Handover & Cell Reselection with TAU
- puremvc 入门与思考