84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
これは私のコードですが、すべてのノードが毎回出力されます。その後、DEBUG は、右のサブツリーに再帰するたびに、tmp 配列が左のサブツリーを走査する前の状態を保持することを発見しました。これは、ルートから右のサブツリーまでの状態ではまったくありません。これはスコープの問題ですか?しかし、解決方法が見つからないので、ここで答えを求めます、ありがとう
それはスコープの問題です。おそらく、アルゴリズムには多くの問題はありません。パラメーターを関数に渡すとき、特に変数パラメーターを渡すときに知っておく必要があるということです (あなたの場合、それはリストです)。 )、数え切れないほど覚えておく必要があります。ここでの問題は主に tmp に焦点を当てています左のサブツリーの状態が保持される理由は、左のサブツリーをトラバースするときに左のサブツリーを tmp に追加し、次の再帰呼び出しを行うためです。左のサブツリーのみがある場合は問題ありませんが、右のサブツリーがある場合は問題が発生します。私の言語表現能力には限界があるので、修正コードを載せておきますリーリー
それはスコープの問題です。おそらく、アルゴリズムには多くの問題はありません。パラメーターを関数に渡すとき、特に変数パラメーターを渡すときに知っておく必要があるということです (あなたの場合、それはリストです)。 )、数え切れないほど覚えておく必要があります。ここでの問題は主に tmp に焦点を当てています左のサブツリーの状態が保持される理由は、左のサブツリーをトラバースするときに左のサブツリーを tmp に追加し、次の再帰呼び出しを行うためです。左のサブツリーのみがある場合は問題ありませんが、右のサブツリーがある場合は問題が発生します。私の言語表現能力には限界があるので、修正コードを載せておきますリーリー