使用void return语句删除链表中的节点[Java]



我正在尝试执行分配以删除链表中的节点。我有前端节点删除工作,并在朋友列表为空时返回。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(找到指向要删除PersonFriend节点和2(实际删除Friend,而不是尝试一次执行所有操作。

最新更新