非空の二分探索木と目標値を考えると、ターゲットに最も近い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; } }