码迷,mamicode.com
首页 > 其他好文 > 详细

[LeetCode] Merge Two Sorted Lists

时间:2015-03-03 18:25:00      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:

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.

水题,注意 dummy node 的使用即可,在不确定头节点的情况下,应该使用 dummy node,如此可以简化程序。以本题为例,鉴于两个输入链表可能为空,我们采用 dummy 节点,使得 dummyHead->next 指向新链表的第一个节点。

以下为 AC 的代码:

/**
 * Author : Acjx
 * Email  : zhoujx0219@163.com
 */

/**
 * Definition for singly-linked list.
 * struct ListNode 
 * {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */

class Solution 
{
public:
    ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) 
    {
        ListNode *dummyHead = new ListNode(0);
        ListNode *cur = dummyHead;
        while (l1 != NULL && l2 != NULL)
        {
            if (l1->val < l2->val)
            {
                cur->next = l1;
                l1 = l1->next;
            }
            else
            {
                cur->next = l2;
                l2 = l2->next;
            }
            
            cur = cur->next;
        }
        
        if (l1 != NULL)
        {
            cur->next = l1;
        }
        
        if (l2 != NULL)
        {
            cur->next = l2;
        }
        
        return dummyHead->next;
    }
};

[LeetCode] Merge Two Sorted Lists

标签:

原文地址:http://www.cnblogs.com/jianxinzhou/p/4311373.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!