zoukankan      html  css  js  c++  java
  • LeetCode 530. Minimum Absolute Difference in BST (二叉搜索树中最小绝对差)

    Given a binary search tree with non-negative values, find the minimum absolute difference between values of any two nodes.

    Example:

    Input:
    
       1
        
         3
        /
       2
    
    Output:
    1
    
    Explanation:
    The minimum absolute difference is 1, which is the difference between 2 and 1 (or between 2 and 3).
    

    Note: There are at least two nodes in this BST.


    题目标签:Binary Search Tree

      这道题目给了我们一个二叉搜索树,其特性为 左 < 根 < 右。让我们找到树中最小的绝对差值,可以存在任意两点中。如果看到二叉搜索树,一定要条件反射性的想起用 inOrder traverse,所有的值是从小到大的排序。这样就很容易找到最小的绝对差了,对于每一个点,和之前那个点比较一下,遍历完树,就可以找到最小的差值。

    Java Solution:

    Runtime beats 77.33% 

    完成日期:07/10/2017

    关键词:Binary Search Tree

    关键点:利用 inOrder traverse 遍历树,所有点的值排序为从小到大

     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 {
    12     int minDiff = Integer.MAX_VALUE;
    13     TreeNode preNode = null;
    14     
    15     public int getMinimumDifference(TreeNode root) 
    16     {
    17         inOrder(root);
    18         return minDiff;
    19     }
    20     
    21     public void inOrder(TreeNode node)
    22     {
    23         if(node == null)
    24             return;
    25         
    26         inOrder(node.left);
    27         
    28         // get the diff between preNode and node
    29         if(preNode != null) // because the first time preNode is null
    30             minDiff = Math.min(minDiff, Math.abs(node.val - preNode.val));
    31         
    32         preNode = node;
    33         
    34         inOrder(node.right);
    35     }
    36 }

    参考资料:

    http://www.cnblogs.com/grandyang/p/6540165.html

    LeetCode 算法题目列表 - LeetCode Algorithms Questions List

  • 相关阅读:
    The nineteenth day
    The eighteen day
    弱读下
    弱读上
    失爆 爆破音
    连读
    The seventeenth day
    The sixteenth day
    React 官方脚手架 create-react-app快速生成新项目
    pc端引入微信公众号文章
  • 原文地址:https://www.cnblogs.com/jimmycheng/p/7148596.html
Copyright © 2011-2022 走看看