📣 Back to School开学季 - VIP通行证5折优惠!蓝莓、Offer多多同步优惠
查看: 1014| 回复: 4
跳转到指定楼层
上一主题 下一主题
收起左侧

[Leetcode] leetcode 203断开链接后为甚不能直接退出循环

全局:

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

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

x
leetcode 203这道linked list题有一个不太懂的地方,先上代码
  1. /**
  2. * Definition for singly-linked list.
  3. * public class ListNode {
  4. *     int val;
  5. *     ListNode next;
  6. *     ListNode(int x) { val = x; }
  7. * }
  8. */
  9. class Solution {
  10.     public ListNode removeElements(ListNode head, int val) {
  11.         if(head == null) return head;
  12.         ListNode dummy = new ListNode(0);
  13.         dummy.next = head;
  14.         ListNode pre = dummy;
  15.         ListNode cur = head;
  16.         while(cur != null) {
  17.             if(cur.val == val) {
  18.                 pre.next = cur.next;
  19.                 break;
  20.             } else {
  21.                 pre = pre.next;
  22.             }
  23.             cur = cur.next;
  24.         }
  25.         return dummy.next;
  26.     }
  27. }
复制代码



觉得很困惑的地方是当cur的值与期待值相同时,把pre的next连上cur的next,按理说我们就可以break这个循环直接返回dummy.next了,为什么我加上break答案就不对,去掉break让循环进行到底就对了呢...

上一篇:请教:关于np完全问题
下一篇:求推荐针对刷题的视频课
全局:
同问,mark一下
回复

使用道具 举报

🔗
rongli 2020-3-25 11:26:20 来自APP | 只看该作者
全局:
是不是list里面有多个node值都为val需要删掉? break只删掉了一个就结束了。
回复

使用道具 举报

🔗
337845818 2020-3-25 11:59:53 | 只看该作者
全局:
你这个代码也太难理解。。

class Solution {
    public ListNode removeElements(ListNode head, int val) {
        if(head == null) return head;
        if(head.val == val) return removeElements(head.next, val);
        head.next = removeElements(head.next, val);
        return head;
    }
}
回复

使用道具 举报

🔗
337845818 2020-3-25 12:08:10 | 只看该作者
全局:
你的想法
    public ListNode removeElements(ListNode head, int val) {
        ListNode dummy = new ListNode(0), next = dummy;
        while(head != null)
        {
            if(head.val != val)
            {
                next.next = head;
                next = next.next;
            }
            head = head.next;
        }
        next.next = null;
        return dummy.next;
    }
回复

使用道具 举报

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

本版积分规则

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