2017-06-13 45 views
0

我试图做一个分配来删除链接列表中的节点。我有前端节点删除工作,并返回friendList为null时。 firstFriend是一个Friend对象,它在内存中拥有一个Person并指向另一个朋友。此方法从第一个朋友链接列表中删除一个朋友。我与如何在方法中正确地更新firstFriend挣扎使用void return语句删除链接列表中的节点[Java]

public void removeFriend(Person friend){   
    Friend prev = null, curr = firstFriend, front = firstFriend; 
    if (curr == null){ 
     return; 
    } 
    while(firstFriend != null){ 
     if(friend.equals(curr.who)){ 
      if(prev == null){ 
       firstFriend = firstFriend.nextFriend; 
      return; 
     } 
      else{ 
       prev = curr.nextFriend; 
     } 
     prev = curr;   
     curr = curr.nextFriend; 

    }  
     firstFriend = front; 

    return; // replace this line 

回答

0

提示#1:你永远只需要更新firstFriend当你删除列表中的第一Friend

提示#2:独立将Friend删除为1)找到Friend节点,该节点指向要删除的Person,并且2)实际删除Friend,而不是尝试立即执行所有操作。