2013-12-14 50 views
-4

我正在编写一个程序作为字典。在程序中,您可以添加和删除单词,并打印当前和删除的单词。我的问题是在我的删除方法,显然它正在删除单词正确,但它没有使一个链接列表存储这些被删除的单词,然后打印出来。因此,它只打印我删除的最后一个单词,而不是我删除的所有单词。这里是方法:从链接列表中删除

public void delete(String b) 
{ 
    WordMeaningNode current = this.list; 
    WordMeaningNode previous = null; 
    WordMeaningNode temp; 

    //While list is empty, return. 
    if (this.list == null) 
    { 
     return; 
    } 

    // While it is not empty.. 
    while (current != null) 
    { 
     if (current.word.getWord().equalsIgnoreCase(b)) 
     { 
      if (current == this.list) 
      { 

       this.list = this.list.next; 
      } 
      else 
      { 

       previous.next = current.next; 
      } 

      temp = current; 
      del = temp; 
      current.next = null; 
      return; 
     } 

     previous = current; 
     current = current.next; 
    } 
} 

有人可以看到我的错误是哪里吗?

回答

0

我不确定del是什么,但假设它是您的删除单词链表中的一个节点,您所做的只是将已删除的单词分配给del = temp中的del。如果你想将它添加到你要创建一个新的节点,然后添加它例如德尔链表...

WordMeaningNode newDelNode; 
newDelNode = temp; 
del.next = temp; 

类似的东西...我不能完全确定,因为它是一个有点难以阅读你的代码。