码迷,mamicode.com
首页 > 其他好文 > 详细

235. Lowest Common Ancestor of a Binary Search Tree 二叉搜索树的LCA

时间:2017-06-23 00:45:07      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:1.4   2.4   stc   color   val   http   init   sel   等于   

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.


二叉搜索树,公共祖先的值一定大于等于较小的节点,小于等于较大的节点。换言之,在遍历树的时候,如果当前结点大于两个节点,则结果在当前结点的左子树里,如果当前结点小于两个节点,则结果在当前节点的右子树里。
  1. /**
  2. * Definition for a binary tree node.
  3. * public class TreeNode {
  4. * public int val;
  5. * public TreeNode left;
  6. * public TreeNode right;
  7. * public TreeNode(int x) { val = x; }
  8. * }
  9. */
  10. public class Solution {
  11. public TreeNode LowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
  12. if(root.val > p.val && root.val > q.val) return LowestCommonAncestor(root.left, p, q);
  13. if(root.val < p.val && root.val < q.val) return LowestCommonAncestor(root.right, p, q);
  14. return root;
  15. }
  16. }






235. Lowest Common Ancestor of a Binary Search Tree 二叉搜索树的LCA

标签:1.4   2.4   stc   color   val   http   init   sel   等于   

原文地址:http://www.cnblogs.com/xiejunzhao/p/cf6467f9193e5ba195a7e9434d953df6.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!