一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 418|回复: 4
收起左侧

[Leetcode] 求助:leetcode partition list runtime error

[复制链接] |试试Instant~ |关注本帖
hhallo 发表于 2016-8-4 08:40:19 | 显示全部楼层 |阅读模式

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

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
以下是我的代码,系统显示:runtime error.


Last executed input:
[1]0
我自己在xcode里跑了下,没发现问题。请问各位究竟是怎么回事呢?谢谢!class Solution {
public:
    ListNode* partition(ListNode* head, int x) {
        ListNode *dummy1 = new ListNode(0);
        ListNode *dummy2 = new ListNode(0);
        ListNode *head2 = dummy2;
        dummy1->next = head;
        head = dummy1;


        while (head->next) {
            if (head->next->val >= x) {
                dummy2->next = head->next;
                head->next = head->next->next;  //remove the elem from orig link
                dummy2 = dummy2->next;
            } else {
                head = head->next;  //NOTE HERE! traverse the link
            }

        }
        dummy2->next = NULL;
        head->next = head2->next;
        head = dummy1->next;
        delete dummy1;
        delete dummy2;
        return head;
    }
};

hxtang 发表于 2016-8-5 06:07:58 | 显示全部楼层
你的dummy1, dummy2有可能不再是你一开始定义的sentinel了。
比如[1], 0的例子,dummy2指向1。delete后head就是dangling pointer了...
回复 支持 反对

使用道具 举报

blackrose 发表于 2016-8-5 06:30:16 | 显示全部楼层
本帖最后由 blackrose 于 2016-8-5 06:39 编辑

Dummy2 一直往后走,最后你还把人家delete了。。。。为啥。。。
回复 支持 反对

使用道具 举报

 楼主| hhallo 发表于 2016-8-6 08:03:52 | 显示全部楼层
hxtang 发表于 2016-8-5 06:07
你的dummy1, dummy2有可能不再是你一开始定义的sentinel了。
比如[1], 0的例子,dummy2指向1。delete后hea ...

多谢多谢!!明白了!
回复 支持 反对

使用道具 举报

 楼主| hhallo 发表于 2016-8-6 08:04:11 | 显示全部楼层
blackrose 发表于 2016-8-5 06:30
Dummy2 一直往后走,最后你还把人家delete了。。。。为啥。。。

多谢!一语点破!
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-11 04:59

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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