我正在尝试执行分配以删除链表中的节点。我有前端节点删除工作,并在朋友列表为空时返回。firstFriend 是一个 Friend 对象,它在内存中有一个 Person 并指向另一个朋友。此方法从第一个朋友链列表中删除朋友。我正在努力了解如何在方法中正确更新第一朋友
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
提示
#1:只有在删除列表中的第一个Friend
时,才需要更新firstFriend
提示#2:将删除Friend
的问题分为两部分:1(找到指向要删除Person
的Friend
节点和2(实际删除Friend
,而不是尝试一次执行所有操作。