一亩三分地论坛

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

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

[Leetcode] Merge Two Sorted Lists Submission Result: Memory Limit Exceeded

[复制链接] |试试Instant~ |关注本帖
Kimqii 发表于 2015-7-30 23:25:19 | 显示全部楼层 |阅读模式

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

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

x
/**
* Definition for singly-linked list.
* public class ListNode {
*     int val;
*     ListNode next;
*     ListNode(int x) { val = x; }
* }
*/
public class Solution {
    public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
        //find the smallest num to be first
        if(l1 == null || l2 == null)
            return l1==null? l2:l1;
        //make t1.val < t2.val
        ListNode t1 = l1.val < l2.val ? l1 :l2;
        ListNode t2 = l1.val > l2.val ? l1 :l2;
        ListNode head = t1;
        while(t1.next != null && t2 !=null){
        if(t2.val < t1.next.val){
            ListNode temp = t1.next;
            t1.next=t2;
            t1 = t1.next;
            t2 = temp;
        }
        else
            t1= t1.next;
        }
        if(t1.next==null && t2!=null){
        t1.next = t2;
        }
        return head;
    }
}

代码如上,结果是Memory Limit Exceeded。
这个题的题干是这样的:
Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.

求解释问题出在哪里?
还有就是对于这类题,题干中并没有明确提出对于内存的要求的,应该什么原则去做呢?
水逼一枚 发表于 2015-7-31 03:39:15 | 显示全部楼层
这种题目如果出现memori exceed一般都是死循环了。ListNode t1 = l1.val < l2.val ? l1 :l2;这里改成ListNode t1 = l1.val <= l2.val ? l1 :l2;不过整体而言你这种写法不好,看看网上的写法吧。
回复 支持 1 反对 0

使用道具 举报

麻倉枼 发表于 2015-7-31 05:20:55 | 显示全部楼层
if(t2.val < t1.next.val){
            ListNode temp = t1.next;
            t1.next=t2;
            t1 = t1.next;
            t2 = temp;
        }

感觉这部分有错
回复 支持 反对

使用道具 举报

水逼一枚 发表于 2015-7-31 05:50:52 | 显示全部楼层
麻倉枼 发表于 2015-7-31 05:20
if(t2.val < t1.next.val){
            ListNode temp = t1.next;
            t1.next=t2;

他这部分没错哈,就是上面等于那里没处理,就是一开始如果两个序列的第一个元素都相等时就死循环了。
回复 支持 反对

使用道具 举报

pyx115 发表于 2015-7-31 05:54:52 | 显示全部楼层
这是我之前问的问题,看起来好像是一个题?可以参考下。
http://www.1point3acres.com/bbs/thread-136835-1-1.html
回复 支持 反对

使用道具 举报

麻倉枼 发表于 2015-7-31 06:18:01 | 显示全部楼层
水逼一枚 发表于 2015-7-30 16:50
他这部分没错哈,就是上面等于那里没处理,就是一开始如果两个序列的第一个元素都相等时就死循环了。

原来如此,哈哈,**还是少出意见好了。
受教
回复 支持 反对

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2016-12-5 03:04

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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