zoukankan      html  css  js  c++  java
  • 270. 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.

    Note:

    • Given target value is a floating point.
    • You are guaranteed to have only one unique value in the BST that is closest to the target.

    Example:

    Input: root = [4,2,5,1,3], target = 3.714286
    
        4
       / 
      2   5
     / 
    1   3
    
    Output: 4

    binary search

    time: O(h), space: O(1)  -- h: height of the tree

    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    class Solution {
        public int closestValue(TreeNode root, double target) {
            TreeNode node = root;
            int min = root.val;
            while(node != null) {
                if(Math.abs(node.val - target) < Math.abs(min - target)) {
                    min = node.val;
                }
                node = node.val > target ? node.left : node.right;
            }
            return min;
        }
    }
  • 相关阅读:
    hadoop day 5
    SSM前言——相关设计模式
    多线程技术点二
    其他对象
    集合拾遗
    入职技术准备
    File类相关操作
    IO流技术
    多线程技术点
    第二章
  • 原文地址:https://www.cnblogs.com/fatttcat/p/10133073.html
Copyright © 2011-2022 走看看