【问题标题】:Deleting a node in a linked list with void return statement [Java]使用 void return 语句删除链表中的节点 [Java]
【发布时间】:2017-11-15 22:11:46
【问题描述】:

我正在尝试执行分配以删除链接列表中的节点。我有前端节点删除工作,并在friendList为空时返回。 firstFriend 是一个 Friend 对象,它在内存中有一个 Person 并指向另一个朋友。此方法从 firstFriend 链表中删除一个朋友。我正在努力解决如何在方法中正确更新 firstFriend

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

【问题讨论】:

    标签: java linked-list


    【解决方案1】:

    提示 #1:您只需在删除列表中的第一个 Friend 时更新 firstFriend

    提示 #2:将删除 Friend 的问题分为两部分:1)找到指向要删除的 PersonFriend 节点和 2)实际删除 Friend,而不是一次完成所有事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-06
      • 2015-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多