LeetCode 21 Merge Two Sorted Lists

LeetCode 21 Merge Two Sorted Lists


题目描述:
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.
翻译:
将两个已经排好序的链表连接起来,将新链表排序后返回,新链表必须包括两个链表的所有结点


这题是easy,思路很好就能想出来,刚开始也想重构sort函数,然后直接使用以为就排完了,但在class里没法调用到,不知道该怎么弄。。然后就正常思路解,但因为是动态内存分配,总是掌握不好分配的技巧,一直报RunTime问题,但又感觉自己的思路没有问题,至今也没太想明白,那就按照一个标准来学习学习了。

这是两个链表合并的问题,也就是说一定要有两个链表指针,一个指向开始的位置,另一个用来进行遍历操作。
目前为止发现的问题就在这里了,就是要把最开始申请的头指针给它分配一个内存空间,让它成为实体,再用其的next作为遍历操作的起点,恩,目前就只能这么理解了。


class Solution {

public:  
    ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
        if(l1 == NULL && l2 == NULL) return NULL;
        if(l1 == NULL) return l2;
        if(l2 == NULL) return l1;
        ListNode* head;
        ListNode h1(INT_MIN);
        head = &h1;
        while(l1&&l2){
            if(l1->val < l2->val){
                head->next = l1;
                l1 = l1 -> next;
            }else{
                head->next = l2;
                l2 = l2 -> next;
            }
            head = head->next;
        }
        if(l1 == NULL){
            head -> next = l2;
        }else{
            head -> next = l1;
        }
        return h1.next;
    }
};


以后就用博客来记录自己的学习了,实在是太菜了,希望自己能够迅速成长起来吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值