Merge Two Sorted Lists
生活随笔
收集整理的這篇文章主要介紹了
Merge Two Sorted Lists
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
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.
Subscribe?to see which companies asked this question
思路:
? ?新建一個(gè)鏈表,然后比較兩個(gè)鏈表中的元素值,把較小的那個(gè)鏈到新鏈表中,然后較小鏈表與另一個(gè)鏈表的額值繼續(xù)進(jìn)行比較,跟合并數(shù)組差不多,由于兩個(gè)輸入鏈表的長度可能不同,所以最終會(huì)有一個(gè)鏈表先完成插入所有元素,則直接另一個(gè)未完成的鏈表直接鏈入新鏈表的末尾。
/*** 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* newnode=new ListNode(NULL);ListNode* head=newnode;//保存頭結(jié)點(diǎn)while(l1!=NULL && l2!=NULL){if(l1->val<l2->val){newnode->next=l1;l1=l1->next;//進(jìn)行l(wèi)1鏈表的 下一個(gè)節(jié)點(diǎn)與l2比較}else{newnode->next=l2;l2=l2->next;}newnode=newnode->next;//保持最前方的節(jié)點(diǎn)}if(l1==NULL) newnode->next=l2;if(l2==NULL) newnode->next=l1;return head->next; //因?yàn)轭^結(jié)點(diǎn)是有元素的,所以鏈表的頭結(jié)點(diǎn)是head->next} };
總結(jié)
以上是生活随笔為你收集整理的Merge Two Sorted Lists的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python进阶09 动态类型
- 下一篇: Python进阶10-标准库介绍01