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 }
  • 相关阅读:
    HTML5 History 模式 nginx配置
    nginx配置及性能调优
    windows启动jar包bat文件
    在线小工具
    BAT文件里Maven命令执行后退出的解决方案
    文字超出隐藏
    SOCKET.IO
    call与apply简单介绍
    html里面,没有内容,要高度占满页面
    css实现三角形标
  • 原文地址:https://www.cnblogs.com/wxisme/p/4726001.html
Copyright © 2011-2022 走看看