2011-12-08 69 views
-3

我目前有這個,但我想把我的列表變成一個雙鏈表,並且無法解決如何操作。爲雙鏈表添加節點方法?

public void addDNode(DNode v) 
{ 
    if(header == tail) 
    { 

     header = v; 
    } 
    else 
    { 
     DNode current = header; 
     while (current.nextNode() != null) 
     { 
      current = current.nextNode(); 
     } 
     current.setNext(v); 
    } 
} 
+0

java.util.LinkedList是雙鏈表。難道你不想使用它,或只是看看裏面的add()方法? – korifey

+0

解決所有鏈表問題的方法是繪製圖表。這將幫助您精確地建立需要更新的指針/引用數量。 –

+2

@ user979236:那你是怎麼寫這段代碼的? –

回答

2
public void addDNode(DNode v) { 
    if (header == null) { // means list is empty, so add first element 
     if (tail != null) 
      throw new AssertionError(); // if head points to null then tail should too 

     header = v; 
     tail = header; // first element so (head == tail) 
    } else { 
     tail.setNext(v); 
     v.setPrev(tail); 
     v.setNext(null); 
     tail = v; 
    } 
} 
+0

謝謝但最後變量是什麼? – Elliot678

+0

我修復了這個錯字。 – msi

+1

它只是給人們提供完整的代碼片段來解決他們的作業問題而皺起眉頭...... –