2013-02-20 97 views
1

好吧,這些二叉樹現在有點讓我瘋狂。我提出了一種方法來獲取樹中的節點數,但結果不正確。總是有一個節點丟失。有任何想法嗎?幫助將不勝感激,因爲我不希望自己成爲一棵樹仇敵:)爲什麼這種方法計算二叉樹的大小不起作用?

public int size() { 
    if (this == null) { 
     return 0; 
    } else { 
     return 1 + (right != null ? right.size() : 0) 
       + (left != null ? left.size() : 0); 
    } 
} 
+4

我覺得'this'永遠不能爲空。除此之外,你的邏輯看起來是正確的。您能否提供一個示例,說明此代碼無法產生正確的結果? – recursive 2013-02-20 21:49:13

+1

你可以粘貼整個類或至少一個構造函數和類成員嗎? – MrKiller21 2013-02-20 21:50:03

+0

等一下。示例即將到來! – user1420042 2013-02-20 21:52:28

回答

0

首先把如果(這個== NULL)是完全沒用的,當你是在調用一個方法,可以徹底清除因此它不是空的。 然後,你能提供一些輸入和輸出數據以及預期的結果嗎?我們只能在這裏做出假設,代碼似乎是合法的。

+3

這應該是一條評論。 – 2013-02-20 21:51:20

+0

確實......對不起。但爲了做到這一點,我需要更多的代表。 :) – benzonico 2013-02-20 21:53:20