[LC] 270最寄のバイナリ検索ツリーの価値

非空の二分探索木と目標値を考えると、ターゲットに最も近いBSTの値を見つけます。

注意:

  • 与えられた目標値は浮動小数点です。
  • あなたがターゲットに最も近いBSTで唯一のユニークな値を持つことが保証されています。

例:

入力:ルート= [4,2,5,1,3]、目標= 3.714286

    4
   / \
  2 5
 / \
1 3

出力:4

/ **
 *バイナリツリーノードの定義。
 *公共のクラスのTreeNode {
 * int型のval;
 *のTreeNodeは左。
 *ツリーノードを右。
 *ツリーノード(INT X){ヴァル= X。}
 *}
 * / 
クラスソリューション{
     公共 のint closestValue(TreeNodeの根、ダブルターゲット){
         場合(ルート== nullの){
             リターン -1 
        }   
        int型のres = root.val。
        一方、(!ルート= NULL ){
             場合(Math.abs(root.val -ターゲット)<Math.abs(RES - ターゲット)){
                RES = root.val。
            }
            もし(root.val> ターゲット){
                ルート = root.left。
            } {
                ルート = root.right。
            }
        }
        リターンのres;
    }
}

 

おすすめ

転載: www.cnblogs.com/xuanlu/p/12242321.html