zoukankan      html  css  js  c++  java
  • LeetCode 270. Closest Binary Search Tree Value

    原题链接在这里:https://leetcode.com/problems/closest-binary-search-tree-value/

    题目:

    Given a non-empty binary search tree and a target value, find the value in the BST that is closest to the target.

    题解:

    target 一定在找的path 上,若是出现了比minDiff 还小的 差值,就把改点更新为cloest.

    但注意target 是 double, 会有溢出情况,所以minDiff 初始化成Double.MAX_VALUE.

    Time Complexity: O(h). h 是树的高度. Space: O(1).

    AC Java:

     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 int closestValue(TreeNode root, double target) {
    12         if(root == null){
    13             return -1;
    14         }
    15         
    16         int cloest = root.val;
    17         double minDiff = Double.MAX_VALUE;
    18         
    19         while(root != null){
    20             if(Math.abs(root.val - target) < minDiff){
    21                 minDiff = Math.abs(root.val - target);
    22                 cloest = root.val;
    23             }
    24             if(target > root.val){
    25                 root = root.right;
    26             }else if(target < root.val){
    27                 root = root.left;
    28             }else{
    29                 return root.val;
    30             }
    31         }
    32         return cloest;
    33     }
    34 }

     跟上Closest Binary Search Tree Value II

  • 相关阅读:
    用户反馈
    Alpha版本测试报告
    Alpha Scrum7
    #Alpha Scrum6
    Alpha Scrum5
    #Alpha Scrum4
    Alpha Scrum3
    Alpha Scrum2
    课程总结
    实验九
  • 原文地址:https://www.cnblogs.com/Dylan-Java-NYC/p/5204357.html
Copyright © 2011-2022 走看看