2014-04-23 33 views
0

我有兩個代碼遍歷列表並輸出列表中的數據。兩個代碼哪一個更正確?

現在我認爲第一個是正確的,因爲我認爲第二個會導致異常發生,我正確嗎?

已回答的問題。

+0

兩者都可能會拋出NPE – Brian

+0

LinkedNode的代碼是什麼? – Kevin

+0

*我認爲第二個會導致異常發生*:嘗試一下,你會看到。 –

回答

1

第二個版本可能會丟NPE。 (考慮情況listnull。)

但更重要的問題是,第二個版本不會輸出列表的最後一個元素。永遠。

你應該能夠通過用手和鉛筆「手動執行」代碼來驗證這一點。我建議你這樣做,因爲它可以幫助你理解實際發生的事情。

(或者,你可以編譯和運行兩個版本的一些例子名單,雖然這會給你少的見解。)

+0

是的,我做了手工計數版本。 –

0

第一種可能是你想要的。您還應該確保data字段不爲空。

第二個問題的一個潛在問題是,如果list爲空,則在while循環條件中嘗試獲得current.next將拋出空指針異常。