标签:
转载请注明出处: http://www.cnblogs.com/gufeiyang
个人微博:flysea_gu
题意:
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.
思路: 两个有序链表归并,没啥说的,唯一要说的,ptr指针不要忘记后移
/**
 * 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) {
        if(l1 == NULL) return l2;
        if(l2 == NULL) return l1;
        ListNode *root = new ListNode(0);
        ListNode * ptr = root;
        while(l1!=NULL && l2!=NULL)
        {
            if(l1->val <= l2->val)
            {
                ptr->next = l1;
                l1 = l1->next;    
            }
            else 
            {
                ptr->next = l2;
                l2 = l2->next;
            }
            ptr = ptr->next;
        }
        while(l1) 
        {
            ptr->next = l1;
            l1 = l1->next;
            ptr = ptr->next;
        }
        while(l2)
        {
            ptr->next = l2;
            l2 = l2->next;
            ptr = ptr->next;
        }
        ptr = root->next;
        delete root;
        return ptr;
    }
};
LeetCode 21. Merge Two Sorted Lists
标签:
原文地址:http://www.cnblogs.com/gufeiyang/p/5203456.html