zoukankan      html  css  js  c++  java
  • LeetCode——Lowest Common Ancestor of a Binary Search Tree

    Description:

    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  *     int val;
     5  *     TreeNode left;
     6  *     TreeNode right;
     7  *     TreeNode(int x) { val = x; }
     8  * }
     9  */
    10 public class Solution {
    11     public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
    12         if(root==null || p==null || q==null) {
    13             return null;
    14         }
    15         int max = p.val > q.val ? p.val : q.val;
    16         int min = p.val < q.val ? p.val : q.val;
    17         if(max < root.val) {
    18             return lowestCommonAncestor(root.left, p, q);
    19         }
    20         else if(min > root.val) {
    21             return lowestCommonAncestor(root.right, p, q);
    22         }
    23         else {
    24             return root;
    25         }
    26         
    27     }
    28 }
  • 相关阅读:
    08-30 作业整理
    JS题目整理
    08-20作业整理
    CSS3知识总结
    CSS样式表知识总结
    html标签知识总结
    Dice (III) 概率dp
    Island of Survival 概率
    How far away ?
    Hdu 2874 Connections between cities
  • 原文地址:https://www.cnblogs.com/wxisme/p/4726001.html
Copyright © 2011-2022 走看看