leetcode---Merge Two Sorted Lists

来源:互联网 发布:白金数据 东野圭吾 编辑:程序博客网 时间:2024/06/10 08:01

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.

/** * 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 *l = NULL, *head = NULL, *p = l1, *q = l2;        if(l1 == NULL)            return l2;        if(l2 == NULL)            return l1;        while(p && q)        {            if(head == NULL)            {                if(p->val < q->val)                {                    head = l = p;                    p = p->next;                    l->next = NULL;                }                else                {                    head = l = q;                    q = q->next;                    l->next = NULL;                }            }            else            {                if(p->val < q->val)                {                    l->next = p;                    l = p;                    p = p->next;                    l->next = NULL;                }                else                {                    l->next = q;                    l = q;                    q = q->next;                    l->next = NULL;                }            }        }        if(p)            l->next = p;        if(q)            l->next = q;        return head;    }};
0 0
原创粉丝点击