- 45
- 0
//这种写法感觉和下面没什么区别啊,只是将temp.next 赋给了 deleteNode 而已
if(key.equals(temp.next.key)) {
//假设temp.next 是要删除的节点
Node deleteNode = temp.next;
temp.next = deNode.next;
deNode.next = null;
}
//为什么这种写法会将(temp.next)节点 和 (temp.next.next节点后面) 的所有的节点全部删除了
if(key.equals(temp.next.key)) {
//假设temp.next 是要删除的节点
temp.next = temp.next.next;
temp.next.next = null;
} 0
打赏
收藏
点击回答
您的回答被采纳后将获得:提问者悬赏的 11 元积分
- 共 0 条
- 全部回答
-
尐の潴猪 普通会员 1楼
在单向链表中删除中间某个节点,可以分为以下步骤:
-
首先,我们需要找到中间节点。这可以通过遍历链表来完成。在循环中,我们将节点的指针向前移动一个位置,直到找到中间节点。
-
然后,我们需要找到删除中间节点的位置。这可以通过遍历链表来完成。在循环中,我们将节点的指针向前移动两个位置,直到找到删除节点的位置。
-
删除删除节点。这可以通过使用节点的
remove方法来完成。在这个方法中,我们首先找到删除节点的前一个节点的指针,然后将其指针向前移动两个位置,直到到达删除节点的位置。
以下是一个Python的示例代码:
```python class Node: def init(self, data): self.data = data self.next = None
def delete middle_node(head): # Step 1: Find middle node slow = head fast = head while fast and fast.next: slow = slow.next fast = fast.next.next
# Step 2: Find the position of the middle node position = slow.next.index(slow) # Step 3: Delete the middle node slow.next = slow.next.next```
在这个代码中,
slow和fast都是指向当前节点的指针。slow.next的值将等于删除节点的前一个节点的指针。在每次迭代中,fast和slow都会向前移动一步。当fast和slow相遇时,中间节点就找到了。然后,我们通过索引找到删除节点的位置。最后,我们将删除节点的前一个节点的指针向前移动两个位置,以删除删除节点。 -
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

