1367.バイナリツリーリストのDFSまたはBFSで

タイトル:1367バイナリツリーのリスト。

リンク:https://leetcode-cn.com/problems/linked-list-in-binary-tree/

質問の意味:やや

アイデア:2つのアイデアが長すぎるためには、算術問題を行っていません。この種の問題に敏感ではない、それは実際、DFSまたはBFSでは、付与されたDPの練習のために取られたと思いました。

DFSの練習は:非常に最初からだと思います。デジタルバイナリツリーのルートの最初のリストと等しいかどうかを比較します。

それらが等しい場合には、バイナリデジタルコンパレータは、それぞれ左右の下位ノードのリストと。

等しくない場合は、最初の数は、場所に再帰的で始まり、最初のリスト内の番号(注なければならないこと

それが発見された場合に等しく、そして継続するために、我々は最初の番号から開始しなければならないではありません。第一されていない場合、電流は等しくないので、その前の同等の切断を意味します。)、それぞれ、バイナリツリーは左と右のノードを比較し続けます。

再帰を説明しました。時間の複雑さ:バイナリノードリストの長さの数は* 100 * 2500 =

#define P対<ListNode *、ツリーノード*> クラスソリューション
{ パブリックBOOL ISSET。
    ListNode * FirstHead。
公共BOOL isSubPath(ListNode *ヘッド、ツリーノード* ルート)
    { 場合(!ISSET){ 
            ISSET = ; 
            FirstHead = ヘッド。
        } 場合(ヘッド== NULL)は{
             返す
        } であれば(ルート== NULL){
             リターン



        
         
         ; 
        } 
        BOOL RES = もし(頭部>ヴァル== root-> ヴァル){ 
            RES = isSubPath(頭部>次に、root->右)|| isSubPath(頭部>次に、root-> 左)。
            もし(RES){
                 戻りRES。
            } 
        } 
        もし(FirstHead == ヘッド){ 
            RES | = isSubPath(ヘッド、root->左)|| isSubPath(ヘッド、root-> 右)。
        } 
        戻りRES。
    } 
}。

 

練習BFS:

 

バイナリツリーの列挙し、リストの各ノードは、最初の試合で始まります。

最初の一致からバイナリツリーリスト及び開始の各所与のノードのために。

BFSで練習に連続した同じパスを探しています。

 

おすすめ

転載: www.cnblogs.com/xiaochaoqun/p/12425886.html