leetCode 21. Merge Two Sorted Lists 合并链表
21. Merge Two Sorted Lists
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.
题目大意:合并两个有序的链表
思路:通过比较两个链表的节点大小,采用尾插法建立链表。
代码如下:
/***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode(intx):val(x),next(NULL){}*};*/classSolution{public:ListNode*mergeTwoLists(ListNode*l1,ListNode*l2){ListNode*newListHead,*newListNode,*newListTail;newListHead=(ListNode*)malloc(sizeof(ListNode));newListTail=newListHead;while((NULL!=l1)&&(NULL!=l2)){if(l1->val<=l2->val){newListNode=(ListNode*)malloc(sizeof(ListNode));newListNode->val=l1->val;newListTail->next=newListNode;newListTail=newListNode;l1=l1->next;}else{newListNode=(ListNode*)malloc(sizeof(ListNode));newListNode->val=l2->val;newListTail->next=newListNode;newListTail=newListNode;l2=l2->next;}}if(NULL!=l1){while(l1){newListNode=(ListNode*)malloc(sizeof(ListNode));newListNode->val=l1->val;newListTail->next=newListNode;newListTail=newListNode;l1=l1->next;}}if(NULL!=l2){while(l2){newListNode=(ListNode*)malloc(sizeof(ListNode));newListNode->val=l2->val;newListTail->next=newListNode;newListTail=newListNode;l2=l2->next;}}newListTail->next=NULL;returnnewListHead->next;}};
2016-08-06 01:40:31
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。