日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

leetcode-合并两个有序链表

發布時間:2025/3/15 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 leetcode-合并两个有序链表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C語言??

思路:常規方法,創建一個新的鏈表,然后比較兩個鏈表值得大小,進行合并

/*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2){if(!l1)return l2;if(!l2)return l1;//創造一個新的鏈表l3struct ListNode* l3 =(struct ListNode*)malloc(sizeof(struct ListNode)),*head=l3;//當l1或者l2的鏈表沒有結束的時候,進行比較while(l1 && l2){//如果l1的值小于等于l2,就讓l1的值放在l3,然后接著比較l1的下一個,否者就將l2的值接在新的鏈表中,接著比較下一個l2if(l1->val<l2->val){head->next=l1;l1=l1->next;}else{head->next=l2;l2=l2->next;}head=head->next;}//如果l1還有,就全部接在l3的后面,否者就是l2接在l3的后面if(l1){head->next=l1;}else if(l2){head->next=l2;}return l3->next; }

C++?

利用遞歸思想進行合并

/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/ class Solution { public:ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {if(!l1) return l2;else if(!l2) return l1;else if(l1->val<l2->val){l1->next=mergeTwoLists(l1->next,l2);return l1;}else{l2->next=mergeTwoLists(l1,l2->next);return l2;}} };

python

# Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution:def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode:if not l1:return l2elif not l2:return l1elif(l1.val<l2.val):l1.next=self.mergeTwoLists(l1.next,l2)return l1else:l2.next=self.mergeTwoLists(l1,l2.next)return l2

?

總結

以上是生活随笔為你收集整理的leetcode-合并两个有序链表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。