Merge Two Sorted Lists

来源:互联网 发布:灌篮高手漫画全集软件 编辑:程序博客网 时间:2024/06/16 05:20

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 *l3 = new ListNode(0);        ListNode *p1 = l1;        ListNode *p2 = l2;        ListNode *p3 = l3;                while(p1 != NULL && p2 != NULL)        {            ListNode *node = new ListNode(0);            if(p1->val <= p2->val)            {                node->val = p1->val;                p1 = p1->next;            }            else            {                node->val = p2->val;                p2 = p2->next;            }            p3->next = node;            p3 = p3->next;            node = NULL;        }                while(p1 != NULL)        {            ListNode *node = new ListNode(p1->val);            p3->next = node;            p3 = p3->next;            node = NULL;            p1 = p1->next;        }                while(p2 != NULL)        {            ListNode *node = new ListNode(p2->val);            p3->next = node;            p3 = p3->next;            node = NULL;            p2 = p2->next;        }                ListNode *del = l3;        l3 = l3->next;        delete del;                return l3;    }};


0 0
原创粉丝点击