Merge Two Sorted Lists

来源:互联网 发布:朝鲜假钞 知乎 编辑:程序博客网 时间:2024/06/06 14:29

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 *head,*p,*s;        head=(ListNode*)malloc(sizeof(ListNode));        p=head;        while(l1!=NULL && l2!=NULL){            if(l1->val<l2->val){                s=(ListNode*)malloc(sizeof(ListNode));                s->val=l1->val;                p->next=s;                p=s;                l1=l1->next;            }            else{                s=(ListNode*)malloc(sizeof(ListNode));                s->val=l2->val;                p->next=s;                p=s;                l2=l2->next;            }        }        while(l1!=NULL){            s=(ListNode*)malloc(sizeof(ListNode));            s->val=l1->val;            p->next=s;            p=s;            l1=l1->next;        }        while(l2!=NULL){            s=(ListNode*)malloc(sizeof(ListNode));            s->val=l2->val;            p->next=s;            p=s;            l2=l2->next;        }        p->next=NULL;        head=head->next;        return head;    }};


0 0
原创粉丝点击