2017-04-11 112 views
-2

我想在列表的末尾添加一個節點。這段代碼是正確的嗎?如何在列表末尾添加節點?

public void insertLast(int id,double dd) 
{ 
    Link current=First; 
    while(current!=null) 
    { 
     current=current.next; 
    } 

    Link temp=new Link(id,dd); 
    temp.next=current; 
    current=temp; 
} 
+2

'while'循環完成後,'current'的值是什麼? –

+1

電流將爲空 – Aakash

+0

temp是一個新的引用,它將有一些地址,現在將當前空值傳遞給temp .....並將當前值更改爲temp – Aakash

回答

2

改變循環條件current!=null

current.next != null

因爲喜歡它的人指出,currentnull循環結束後,你想current是在列表中的最後一個節點。但是,如果您選擇這樣做,那麼您還需要在方法的開始處進行檢查,以查看First是否爲null,因爲如果是這樣,則循環會引發異常,因爲您無法檢查下一個元素一個null對象。

public void insertLast(int id,double dd) 
{ 
    Link current=First; 
    if(current == null) { 
     First = new Link(id,dd); 
     First.next = null; 
     return; 
    } 
    while(current.next != null) 
    { 
     current=current.next; 
    } 

    Link temp = new Link(id,dd); 
    current.next = temp; 
    temp.next = null; 
} 
+0

我想要臨時成爲最後一個節點..... – Aakash

+0

@Aakash完全,所以當'current'成爲最後一個節點時,您將'current.next'設置爲新節點。檢查我的編輯。 –

+0

我仍然懷疑先生...... – Aakash