C で再帰関数を作成しようとしています。これは、バイナリ ツリーのルートを受け取り、指定された合計に等しい pathtoleaf が存在するかどうかを確認します。たとえば、次のツリーの最初のノードを受け取ります。
1 2 3 5 10 4 20 2
以下は PathToLeaf の例です。
- 1⟶2⟶10
- 2⟶5
- 20⟶2
以下は PathToLeaf ではありません。
- 1⟶2
- 1⟶3⟶20
パスが存在する場合、関数は 1 を返す必要があります。そうでない場合は、0 を返す必要があります。
このツリーでは、合計が 12 の場合、パスが 2⟶10; であるため、関数は 1 を返す必要があります。sum=4 の場合、唯一のパス (1⟶3) が葉で終わっていないため、関数は 0 を返す必要があります。
ここでの大きな問題は、roottoleaf パスをチェックする関数しか管理できないことです。