题解 | #合并两个排序的链表#

合并两个排序的链表

http://www.nowcoder.com/practice/d8b6b4358f774294a89de2a6ac4d9337

第三题
/*
struct ListNode {
    int val;
    struct ListNode *next;
    ListNode(int x) :
            val(x), next(NULL) {
    }
};*/
class Solution {
public:
    ListNode* Merge(ListNode* pHead1, ListNode* pHead2) {
        // 归并排序 ans是会一步一步往后走的,所以ret_ans相当于头结点保存下来返回结果
        ListNode *ans=new ListNode(0);
        ListNode *ret_ans=ans;
        // 循环条件
        while(pHead1!=NULL && pHead2!=NULL)
        {
            // 归并排序的关键,看第一个结点谁最小,连接到ans上
            if(pHead1->val < pHead2->val)
            {
                ans->next=pHead1;
                ans=ans->next;
                pHead1=pHead1->next;
            }
            else{
                ans->next=pHead2;
                ans=ans->next;
                pHead2=pHead2->next;
            }
        }
        
        // 上面退出循环是有一个做完了
        // 但是另一个可能还没有做完,所以要把没做完的直接链接到结尾
        if(pHead1 != NULL)
            ans->next=pHead1;
        else
            ans->next=pHead2;
        
        return ret_ans->next;
    }
};

题解 文章被收录于专栏

一遍做剑指offer 一边保存做题步骤 并附带详细注释哦

全部评论
ListNode *ans=new ListNode(0);内存泄露啦
点赞 回复 分享
发布于 03-15 12:36 江苏

相关推荐

你是我的最优解L:这题是不是优化快排就能解出来?
点赞 评论 收藏
分享
码砖:求职岗位要突出,一眼就能看到,教育背景放到最后,学校经历没那么重要,项目要重点突出
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-24 13:39
在记录秋招的大魔王很...:别被忽悠了,我做了多年销售。我可以告诉你,这就是忽悠你的,销售一定要看底薪也要看提成两者不可缺一。提成是有业绩的时候才拿的到的,谁能保证一直有单状态都好。销售有时候很讲究运气的。底薪是你这个人这个岗位日常工作体现的价值。别小看底薪,你看那些跳槽去做经理主管的,底薪底一些,人家愿意去吗?所以那些说销售靠提成的纯属忽悠,除非他们的业务很容易成单。
点赞 评论 收藏
分享
评论
5
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务