2011-07-02 6 views
-1
public void addNode(Car newCarEntry){ 
    ListNode currentNode; 
    ListNode previousNode; 
    ListNode newNode = new ListNode(newCarEntry); 

    if (head == null || newCarEntry.isNewerThan(head.carItem)){ 
     newNode.next = head; 
     head = newNode; 
    }else{ 
     currentNode = head.next; 
     previousNode = head; 
     while(currentNode != null &&  !newCarEntry.isNewerThan(currentNode.carItem)){ 
      currentNode = currentNode.next; 
      previousNode = currentNode; 
     } 
     newNode.next = currentNode; 
     newNode = previousNode.next; 
    } 
} 
+0

ListNodeとは何ですか?それは何ですか? – aps

+0

@Artur Vieira、ListNodeの完全修飾名を提供できますか?非難されるかもしれません。 –

答えて

3

ポインタを進める方法に間違いがあります。 変更:あなたはcurrentNodeのとpreviousNodeの両方があなたが望むものではありません同じオブジェクトへの参照を保持します

 currentNode = currentNode.next; 
     previousNode = currentNode; 

 previousNode = currentNode; 
     currentNode = currentNode.next; 

にあなたの方法。

EDIT:あなたはリストにこの方法を新しいノードを取り付けていないので、 また、あなたの最後の行は

previousNode.next = newNode; 

INSEAD

newNode = previousNode.next; 

でなければなりません。

+0

別の質問がありました。 http://stackoverflow.com/questions/6558658/in-this-method-i-keep-getting-a-return-value-of-one-even-after-i-add-more-nodes –

関連する問題