static int sum=0;
public static int size(TreeNode root){
if(root==null)
return sum;
sum++;
sum=size(root.left);
sum=size(root.right);
return sum;
}
バイナリツリーのノード数をカウントする関数「サイズ」を完了する必要があります。上記のコードを書きました。一部のテストケースでは間違った答えを出しています。上記のコードのどこが悪いのか説明してください。
ここに:
sum=size(root.left);
sum=size(root.right);
2つの合計を計算して、最初の合計を破棄します!
あなたが行くことができます:return size(root.left)+size(root.right) + 1
代わりに。
ここで静的フィールドを使用しても意味がありません。もしそうなら、それはその再帰的メソッド内のローカル変数であるべきです!それぞれ:単にnullの場合、それ以外の場合はここで提供した戻り値を使用します。そもそもその変数を使用する必要はありません! sum
return 0
sum
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加