2017-06-13 31 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,而不是嘗試立即執行所有操作。