21. Merge Two Sorted Lists

来源:互联网 发布:h5数据可视化 编辑:程序博客网 时间:2024/06/08 15:28
description:    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=new ListNode(0);        ListNode* ptr=head;        while(l1!=NULL||l2!=NULL){            ListNode* cur=NULL;            if(l1==NULL){                cur=l2;                l2=l2->next;            }            else if(l2==NULL){                cur=l1;                l1=l1->next;            }            else{                if(l1->val<l2->val){                    cur=l1;                    l1=l1->next;                }                else{                    cur=l2;                    l2=l2->next;                }            }            ptr->next=cur;            ptr=ptr->next;        }        return head->next;    }};


0 0