LeetCode Merge Two Sorted Lists C++

来源:互联网 发布:aws centos 编辑:程序博客网 时间:2024/06/17 10:42
#include <iostream>#include <vector>#include<algorithm>#include <queue>using namespace std;/************************************************************************//*     Problem:    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.For example,   Given linked list: 1->2->3->4->5,    Given linked list: 2->3->4->5->6;   output:        1-2-2-3-3-4-4-5-5-6; linklist ;Note:    Author  :   crazys_popcorn@126.com    DateTime:   2017年8月10日 13:16:07*//************************************************************************/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 && l2 == NULL)            return NULL;        ListNode *newlist = new ListNode(0);        ListNode *head = newlist;        while (l1 != NULL ||l2 !=NULL)        {            if (l2 == NULL || l1 == NULL)            {                if (l1 == NULL)                {                    head->next = l2;                    head = head->next;                    l2 = l2->next;                }                else                {                    head->next = l1;                    head = head->next;                    l1 = l1->next;                }                continue;            }            if (l1->val > l2->val)            {                head->next = l2;                head = head->next;                l2 = l2->next;            }            else if (l1->val < l2->val)            {                head->next = l1;                head = head->next;                l1 = l1->next;            }            else            {                head->next = l2;                head = head->next;                l2 = l2->next;            }        }        return newlist->next;    }};void main(){    ListNode *t1 = new ListNode(0);    ListNode *t2 = new ListNode(0);    ListNode *t3 = new ListNode(0);    ListNode *t4 = new ListNode(0);    t1->val = 4;    t2->val = 4;    t3->val = 4;    t4->val = 5;    t1->next = t2;    t2->next = t3;    t3->next = t4;    ListNode *tt1 = new ListNode(0);    ListNode *tt2 = new ListNode(0);    ListNode *tt3 = new ListNode(0);    ListNode *tt4 = new ListNode(0);    tt1->val = 1;    tt2->val = 2;    tt3->val = 3;    tt4->val = 4;    tt1->next = tt2;    tt2->next = tt3;    tt3->next = tt4;    Solution s1;    ListNode  *temp = s1.mergeTwoLists(t1, tt1);    system("pause");    return ;}
原创粉丝点击