leetcode-105-二分木構造を持つ前のシーケンスの前順

件名の説明:

  

この方法の一つ:

#のバイナリツリーノードの定義。
#のクラスのTreeNode:      デフ__init __(自己、X):          self.val = X          self.left =なし
#1          self.right =なし

クラスソリューション:
     DEF INORDER一覧の[int]は、::リスト[buildTree(自己、前順INT]) - > のTreeNode:
         DEFヘルパー(in_left = 0、in_right = )でlen(INORDER):
            ローカル以外pre_idxの
            サブツリーを構築するために要素が存在しない場合
            場合 in_leftは== in_right:返すなし 
             #はrootとしてpre_idx要素を拾います
            root_val = 予約限定[pre_idx] 
            ルート = のTreeNode(root_val) 
            リストINORDERルート分割
            左と右のサブツリーへの 
            インデックスは= idx_map [root_val] 
            再帰 
            pre_idx + = 1 ビルド左サブツリー 
            root.left = ヘルパー(in_left、インデックス) 
             構築右のサブツリー 
            root.right =ヘルパー(インデックス+ 1 、in_right) 
             リターンルート 
         #の最初の先行順要素から開始 
        pre_idx =
            0 
         #はハッシュマップの値を構築する- >インデックス 
        idx_map = {ヴァル:IDX 用の IDX、ヴァル(INORDER)列挙} 
         戻りヘルパー()

 

おすすめ

転載: www.cnblogs.com/oldby/p/11184886.html