目標値に、少なくとも1つの経路と組み合わせる葉へルートからツリーが目標値と等しいか否かを判断します
典型的な深さ優先アルゴリズム。
1が検出されると、グローバル変数bResultの導入は、それはもはや他の検索ではありません。
クラスのソリューション{ パブリック: 無効ヘルパー(TreeNodeの* CUR、int型の合計、int型のターゲット、BOOL&bResult){ 場合(bResult) リターン。 // (CUR) // LK( "根"、curが) // (和) // (ターゲット) // DSP の場合(cur->左&& cur->!!右){ bResult | =ターゲット-sum == cur-> valの; } であれば(cur-> 左) ヘルパー(CUR - >左、和+ cur->ヴァル、ターゲット、bResult)。 もし(cur-> 右) ヘルパー(CUR - >右、合計+ cur-> valを、ターゲット、bResult)。 } ブール hasPathSum(のTreeNode *ルート、int型の合計){ 場合(!ルート) を返す 偽。 もし(!root->左&& root-> 右){ リターン合計== root-> valの; } // AHD(ルート) BOOLブレット= 偽。 // (BRET) の場合(root-> 左) ヘルパー(ルート- >左、root-> valを、合計、BRET)。 もし(root-> 右) ヘルパー(ルート - >右、root-> valを、合計、BRET)。 //はDSP 返すBRETを。 } }。
ダイナミックなプレゼンテーションを実行 http://simpledsp.com/FS/Html/lc112.html