[LeetCode]バイナリ検索Treer_Easy_tagで700件の検索:バイナリ検索ツリー

二分探索木(BST)のルートノードと値を考えます。あなたは、ノードの値が所定の値に等しいことBST内のノードを見つける必要があります。そのノードにサブツリーを返します。そのようなノードが存在しない場合は、NULLを返す必要があります。

例えば、 

:木を考えると
        4 
       / \ 
      2 7 
     / \ 
    1 3 

そして、検索する値:2

あなたはこのサブツリーを返す必要があります:

      2      
     / \    
    1 3

我々は値を検索したい場合は、上記の例では、  5値を持つノードが存在しないことから、  5我々は返す必要があります  NULL

空の木はで表されることに注意してください  NULL、したがって、あなたのように期待される出力(シリアル化されたツリー形式)を見ること  []はありません、  null

 

これは、バイナリ検索ツリーがあり、基本的なスキルです、ツリー内のポイントがあるかどうかを見つけることです。、H = LG2(N)O(H):バイナリサーチツリー特性は、左の子<ノード<右の子、それがTので、左側のツリーまたは右ツリーに判断することができます。

T:O(H)S:O(1)

コード

バイナリツリーノードのための定義。クラスのTreeNode(オブジェクト):      デフ__init __(自己、X):          self.val = X          self.left =なし         self.right =なし

クラスソリューション(オブジェクト):
     デフsearchBST(自己、根、ヴァル):
         "" " タイプルート:ツリーノード
        :タイプヴァル:INT 
        :RTYPE:TreeNodeの
        """ 
        ANS =なし
        しばらくルート:
             もし root.val> ヴァル:
                ルート = root.left
             のelifroot.val == ヴァル:
                 リターンルート
             
                ルート = root.right
        
        

 

おすすめ

転載: www.cnblogs.com/Johnsonxiong/p/11874932.html