zoukankan      html  css  js  c++  java
  • [leetcode] Lowest Common Ancestor of a Binary Search Tree

    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 p and q as the lowest node in T that has both p and q as descendants (where we allow a node to be a descendant of itself).”

    Given binary search tree:  root = [6,2,8,0,4,7,9,null,null,3,5]

            _______6______
           /              
        ___2__          ___8__
       /              /      
       0      _4       7       9
             /  
             3   5
    

    Example 1:

    Input: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 8
    Output: 6
    Explanation: The LCA of nodes 2 and 8 is 6.
    

    Example 2:

    Input: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 4
    Output: 2
    Explanation: The LCA of nodes 2 and 4 is 2, since a node can be a descendant of itself 
                 according to the LCA definition.
    

    Note:

    • All of the nodes' values will be unique.
    • p and q are different and both values will exist in the BST.

     分析:题目意思也很清楚,解释一下如下:给定一个二叉搜索树,要求找两个节点的最小的父亲。注意到这里时二叉搜索树。也就是说一个节点左子树的值一定小于右子树的值。这是一个核心点,找到这个点我们就可以来写递归代码了。
    1 class Solution {
    2     public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
    3         if ( root == null ) return null;
    4         if ( root.val > Math.max(p.val,q.val) ) return lowestCommonAncestor(root.left,p,q);
    5         else if ( root.val < Math.min(p.val,q.val) ) return lowestCommonAncestor(root.right,p,q);
    6         else return root;
    7     }
    8 }
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    转:mac下安装homebrew
    jdk1.7下载路径
    转: Mac 使用ADT的问题
    转:mac下安装Sublime Text
    转: SVN和Git的一些用法总结
    转: SVN使用教程总结(图文丰富,相当详细)
    转:Tortoise SVN 版本控制常用操作知识
    Android Java混淆(ProGuard)
    转:美团Android资源混淆保护实践
    【IPC进程间通讯之三】内存映射文件Mapping File
  • 原文地址:https://www.cnblogs.com/boris1221/p/9306992.html
Copyright © 2011-2022 走看看