【leetcode】1367。バイナリツリーのリンクリスト

次のように内容は次のとおりです。

バイナリツリーを考える  root ととリンクリスト  head の最初のノードとして。 

戻り値Trueの場合、リンクリスト内のすべての要素から始まる場合は  head 、一部に相当する  下向きの経路  そうでない場合はFalseを返す二項ツリーに接続されています。

この文脈において下向きの経路は、いくつかのノードで始まり、下方に行くことパスを意味します。

例1:

入力:ヘッド= [4,2,8]、ルート= [1,4,4-、NULL、2,2、NULL、1、NULL、6,8、NULL、NULL、NULL、NULL、1,3] 
出力:真の
説明:ブルーフォーム内のノードのバイナリツリーのサブパス。  

例2:

入力:ヘッド= [1,4,2,6]、ルート= [1,4,4-、NULL、2,2、NULL、1、NULL、6,8、NULL、NULL、NULL、NULL、1,3 ] 
出力:真

例3:

入力:ヘッド= [1,4,2,6,8]、ルート= [1,4,4-、NULL、2,2、NULL、1、NULL、6,8、NULL、NULL、NULL、NULL、1 、3] 
出力:偽の
説明:からリンクされたリストのすべての要素を含むバイナリツリー内のパスがありませんhead

制約:

  • 1 <= node.val <= 100 リンクリストとバイナリツリー内の各ノードについて。
  • 与えられたリンクリストには間が含まれます  1 と  100 、ノード。
  • 与えられたバイナリツリーは間が含まれます  1 と  2500 、ノード。

ソリューションの概要:順次ツリーの各ノードは、リストの最初のノードとして使用することができるかどうかを決定します。

コードは以下の通りであります:

一重リンクリストのための定義。クラスListNode(オブジェクト):      デフ__init __(自己、X):          self.val = X          self.next =なし

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

クラスソリューション(オブジェクト):
    RES = Falseの
     デフ比較(自己、tree_node、 list_node):
         場合 self.resは== TRUE:
            返す
        のelif list_node.next ==なし list_node.val == tree_node.val:
            self.res = 真の
             リターン
        のelif list_node.val =!tree_node.val:
             リターン
        のelif list_node.next == なし:
             リターン
        もし!tree_node.left = なし:
            self.compare(tree_node.left、list_node.next)
        であれば tree_node.right =!なし:
            self.compare(tree_node.right、list_node.next)

    デフisSubPath(自己、頭、根
        ):""」 
        :型ヘッド:ListNode
        :タイプのルート:のTreeNode 
        :RTYPE:ブール
        ""」
        self.res = Falseの

        デフ再帰(tree_node):
            self.compare(tree_node、ヘッド)
            であれば self.res == TRUE:
                 リターン
            もし!tree_node.left = なし:
                再帰( tree_node.left)
            の場合 tree_node.right =!なし:
                再帰(tree_node.right)

        再帰的(ルート)
        の戻り self.res

 

おすすめ

転載: www.cnblogs.com/seyjs/p/12416400.html