查看: 3281| 回复: 9
跳转到指定楼层
上一主题 下一主题
收起左侧

[树/链表/图] 问到leetcode easy的题。。

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
LeetCode 237
Write a function to delete a node (except the tail) in a singly linked list, given only access to that node.
Supposed the linked list is 1 -> 2 -> 3 -> 4 and you are given the third node with value 3, the linked list should become 1 -> 2 -> 4after calling your function.
这道题的正确写法是
public class Solution {
    public void deleteNode(ListNode node) {
        node.val=node.next.val;
        node.next=node.next,next;
   }
}
为什么直接写
node=node.next;是错的呢?有点懵逼想不明白,求答疑


上一篇:关于dfs with memorization的时间复杂度
下一篇:征寒假一起刷题,mock interview
推荐
Sun 2016-12-20 17:45:58 | 只看该作者
全局:
Java语言里,此处node只是个reference,你可以解理为一个游标,开始时指向的是当前的这个地址,node = node.next 等于是把node这个游标向下个节点移动了一下,整个链表并没有发生任何变化;

LeetCode很多题如果用Java写都需要注意这种问题,类似于 head = head.next 这样的,原来的链表的结构没有发生实质性的变化
回复

使用道具 举报

全局:
这题其实是无法删除给定节点的,因为之前节点永远指向本节点无法改变。只是把下个节点值复制到这个节点,删掉下一个而已。变相删了本节点。可以看看discussion 里讨论都是这样的
回复

使用道具 举报

🔗
qzwzkyssb9h 2016-12-20 15:51:00 | 只看该作者
全局:
我个人觉得是 如果直接写node = node.next其实只是相当于更新了指向node的指针(把原来指向node的指针指向了node.next),但是整个链表的连接关系或者说结构并没有发生变化,也就是说你并没有删除node这个节点
回复

使用道具 举报

🔗
 楼主| linx0383 2016-12-21 06:31:53 | 只看该作者
全局:
OK 多谢大大们解答~
回复

使用道具 举报

🔗
ykwwind 2016-12-21 06:36:42 | 只看该作者
全局:
先别刷题了...去看下object, ref的概念.
回复

使用道具 举报

🔗
chaosMonkey 2017-1-4 15:10:58 | 只看该作者
全局:
相当于c++中的指针赋值不是指针的引用赋值
回复

使用道具 举报

全局:
这个代码的意思其实并没有删除任何节点,只是游标往右走了一位,仔细想想似乎原来node的下一个应该是丢失了,也就是说如果要删除3所在的node,那么所在4的node应该是要丢失的,那么如果在c++的代码里面这个code应该是有memory leek的
回复

使用道具 举报

🔗
Ajay91 2017-1-4 20:57:59 | 只看该作者
全局:
ls解释的好好,我现在无脑写就是 改变listNode 的时候 都要 node.next在=左边来。node = node.next只是move node to next.

Lz要不要一起刷题呢,这道题我第一次做也point to null了
回复

使用道具 举报

🔗
nano0711 2017-1-4 21:55:08 | 只看该作者
全局:
Python中也有这种情况,我做这题也遇到这个问题,想了很久
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表