我想弄清楚如何編寫一個方法,該方法將修改鏈接列表中的最後一個節點,並在傳遞時將其從null
更改爲第一個節點鏈表中的第一個指針。Java中的LinkedLists;使列表中的最後一個節點指向第一個節點,而不是包含空
我想這裏面變成了一個錯誤:
public void blah()
{
Node p = first;
while (p != null)
{
p = p.link;
}
p.x = p.first;
}
我想弄清楚如何編寫一個方法,該方法將修改鏈接列表中的最後一個節點,並在傳遞時將其從null
更改爲第一個節點鏈表中的第一個指針。Java中的LinkedLists;使列表中的最後一個節點指向第一個節點,而不是包含空
我想這裏面變成了一個錯誤:
public void blah()
{
Node p = first;
while (p != null)
{
p = p.link;
}
p.x = p.first;
}
試試這個:
public void blah() {
Node p = first;
while (p.link != null) {
p = p.link;
}
p.link = first;
}
要知道,這將創建一個循環鏈表,這就是你想要什麼,對不對?此外,我假設first
是blah()
所在類別的屬性。
這會爲你做的工作。
public void blah(Node list){
Node firstNode = list;
while (list.link != null){
list = list.link;
}
list.link = firstNode;
}
您在代碼中使用的'first'引用表明其成員變量。如果您想詳細瞭解Java中的單鏈接列表,請參閱此link。
public void blah() { Node p = first; while(p!= null) { p = p.link } p.x = p.first; } – user1096713 2011-12-18 21:26:17
什麼是例外?通常他們有助於診斷問題。 – Paul 2011-12-18 21:46:26