[leetcode] Merge Two Sorted Lists

来源:互联网 发布:mac不能恢复单一分区 编辑:程序博客网 时间:2024/05/28 03:03

Merge Two Sorted Lists

/** Definition for singly-linked list. */#include <iostream>using namespace std;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 *pHead=NULL;                //默认从小到大排序        if (l1->val<l2->val) {            pHead=l1;            l1=l1->next;        }else{            pHead=l2;            l2=l2->next;        }                ListNode *pCur=pHead;                while (l1!=NULL&&l2!=NULL) {            if (l1->val<l2->val) {                pCur->next=l1;                l1=l1->next;            }else{                pCur->next=l2;                l2=l2->next;            }            pCur=pCur->next;//当前指针后移        }                if (l1==NULL) {            pCur->next=l2;        }else{            pCur->next=l1;        }                return pHead;    }};int main(){    ListNode *p1=new ListNode(5);    ListNode *p2=new ListNode(1);    p2->next=new ListNode(2);    p2->next->next=new ListNode(4);        Solution so;    ListNode *res= so.mergeTwoLists(p1, p2);    cout<<res->val<<res->next->val<<res->next->next->val<<res->next->next->next->val<<endl;    return 0;}


0 0