劍指offer:合并兩個排序的鏈表

來源:互聯網
上載者:User
#include <iostream>#include <stdio.h>#include <malloc.h>using namespace std;struct ListNode{    int val;    struct ListNode *next;    ListNode(int x) :        val(x), next(NULL)    {    }};class Solution{public:    ListNode* Merge(ListNode* pHead1, ListNode* pHead2)    {        if(pHead1 == NULL)            return pHead2;        else if(pHead2 == NULL)            return pHead1;        ListNode * res = NULL;        ListNode * tmp = NULL;        while(pHead1 && pHead2)        {            if(pHead1->val > pHead2->val)            {                if(res == NULL)                    res = tmp = pHead2;                else                {                    res->next = pHead2;                    res = res->next;                }                pHead2 = pHead2->next;            }            else            {                if(res == NULL)                    res = tmp = pHead1;                else                {                    res->next = pHead1;                    res = res->next;                }                pHead1 = pHead1->next;            }        }        if(pHead1 == NULL)            res->next = pHead2;        if(pHead2 == NULL)            res->next = pHead1;        return tmp;    }};int main(){    int i;ListNode * p = (ListNode*)malloc(sizeof(ListNode));p->val = 1;p->next = NULL;ListNode * p1 = p;ListNode * q = (ListNode*)malloc(sizeof(ListNode));q->val = 1;q->next = NULL;ListNode * q1 = q;for(i = 2; i < 5; i++){p->next = (ListNode*)malloc(sizeof(ListNode));p = p->next;p->val = i;p->next = NULL;q->next = (ListNode*)malloc(sizeof(ListNode));q = q->next;q->val = i;q->next = NULL;}Solution s;ListNode * node = s.Merge(p1, q1);while(node){        cout << node->val << " ";        node = node->next;}    return 0;}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.