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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

LeetCode 23合并K个升序链表24两两交换链表中的节点

發布時間:2025/3/20 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 23合并K个升序链表24两两交换链表中的节点 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

維護不易,點贊再看,感謝支持

合并K個升序鏈表

題目描述

給你一個鏈表數組,每個鏈表都已經按升序排列。
請你將所有鏈表合并到一個升序鏈表中,返回合并后的鏈表。

示例 1:

輸入:lists = [[1,4,5],[1,3,4],[2,6]]
輸出:[1,1,2,3,4,4,5,6]
解釋:鏈表數組如下:
[
1->4->5,
1->3->4,
2->6
]
將它們合并到一個有序鏈表中得到。
1->1->2->3->4->4->5->6

示例 2:

輸入:lists = []
輸出:[]

示例 3:

輸入:lists = [[]]
輸出:[]

提示:

k == lists.length
0 <= k <= 10^4
0 <= lists[i].length <= 500
-10^4 <= lists[i][j] <= 10^4
lists[i] 按 升序 排列
lists[i].length 的總和不超過 10^4

分析
這題合并多個鏈表,可以遍歷當前有效的(不為null)鏈表頭找到最小的那個,逐一插入到新的鏈表中。也可以從前往后兩兩合并鏈表,使用上面合并兩個有序鏈表的方法。但是這兩種需要比較的次數。時間復雜度都為O(n*k)其中n為節點總個數,K為鏈表個數。

進行優化主要有兩種具體實現思路 ,一種就是利用一種排序每次找到最小的節點,而這種更適合堆排序動態維護。另一種就是利用類似歸并的思想。將兩兩歸并,最終歸并為一個鏈表。從效率上看每個比較次數本來從k次由歸并變成了log k,所以時間復雜度為O(nlogk);而合并具體操作也有直接迭代和遞歸兩種方式,這里就使用迭代的方式。

實現代碼為:

public ListNode mergeKLists(ListNode[] lists) {if(lists.length==0)return null;if(lists.length==1)return lists[0];List<ListNode>nodes1=new ArrayList<ListNode>();List<ListNode>nodes2=new ArrayList<ListNode>();int i=0;//歸并for(;i<lists.length-1;i+=2){nodes1.add(mergeTwoLists(lists[i],lists[i+1]));}if(i==lists.length-1)nodes1.add(lists[i]);while (true) {for(i=0;i<nodes1.size()-1;i+=2){nodes2.add(mergeTwoLists(nodes1.get(i), nodes1.get(i+1)));}if(i==nodes1.size()-1) nodes2.add(nodes1.get(nodes1.size()-1));nodes1.clear();nodes1.addAll(nodes2);nodes2.clear();if(nodes1.size()==1)return nodes1.get(0);} }public ListNode mergeTwoLists(ListNode l1, ListNode l2) {if(l1==null)return l2;if(l2==null)return l1;if(l1.val>l2.val)//l1更小{ListNode team=l1;l1=l2;l2=team;}ListNode value=l1;while (l2!=null) {if(l1.next==null){l1.next=l2;break;}else if (l1.next.val<l2.val) {l1=l1.next;}else {ListNode node=l1.next;l1=l1.next=l2;l2=node;//l1=l1.next;}}return value; }


當然這樣編寫對數組的利用比較差,每次重新賦值浪費一定效率,可以直接復用數組每次兩兩合并的時候賦值到對應位置。具體代碼為:

public ListNode mergeKLists(ListNode[] lists) {if(lists.length==0)return null;if(lists.length==1)return lists[0];int k=lists.length-1;while (k>0) {int i;for(i=0;i<k;i+=2){lists[i/2]=mergeTwoLists(lists[i], lists[i+1]);}if(i==k){lists[i/2]=lists[i];k=(k+1)/2; }else{k/=2;}} return lists[0];}public ListNode mergeTwoLists(ListNode l1, ListNode l2) {//此處省略}

兩兩交換鏈表中的節點


分析:
本題的要求就是交換奇偶節點。不能直接交換值也就意味不能直接賦值要通過鏈表插入刪除來實現。而具體的流程也很簡單:

具體實現代碼為:

public ListNode swapPairs(ListNode head) {if(head==null)return head;ListNode value=new ListNode(0);value.next=head;ListNode team=value;ListNode first;ListNode second;while (team!=null&&team.next!=null) {if(team.next.next==null)return value.next;first=team.next;second=team.next.next;team.next=second;first.next=second.next;second.next=first;team=first;//team=team.next.next}return value.next;}

結語

原創不易,bigsai請你幫兩件事幫忙一下:

  • star支持一下, 您的肯定是我在平臺創作的源源動力。

  • 微信搜索「bigsai」,關注我的公眾號,不僅免費送你電子書,我還會第一時間在公眾號分享知識技術。加我還可拉你進力扣打卡群一起打卡LeetCode。

  • 記得關注、咱們下次再見!

    總結

    以上是生活随笔為你收集整理的LeetCode 23合并K个升序链表24两两交换链表中的节点的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 性欧美极品另类 | 欧美第九页 | 欧美人妖老妇 | 成av在线| 国精产品一区二区三区 | 免费在线小视频 | 欧美极品少妇 | 日韩黄色a级片 | 中文天堂网 | 国产激情一区 | 亚洲AV无码久久精品浪潮 | 激情综合五月网 | 不卡av在线免费观看 | 福利社午夜 | 亚洲品质自拍视频网站 | 女同性恋毛片 | 女生隐私免费看 | 国产福利一区视频 | 男女福利视频 | 91插插插影库永久免费 | 国产一二三精品 | 国产激情视频在线观看 | 日韩欧美一区二区三区视频 | 91av一区 | 黄片毛片在线 | 一级片免费网址 | 俄罗斯丰满熟妇hd | 手机看片福利在线 | 国产色综合天天综合网 | 日本一区二区三区视频在线观看 | 一区二区三区四区在线免费观看 | 捆绑无遮挡打光屁股调教女仆 | 欧美日韩激情一区二区 | 精品久久无码视频 | 天天草天天爽 | 欧美美女性高潮 | 人人艹人人 | 午夜激情久久 | 涩涩精品 | a级片免费视频 | v8888av| 国产最新av| 在线观看免费 | 在线免费国产 | 涩涩成人网 | 久久精品香蕉视频 | 99久热在线精品996热是什么 | 亚洲精品四区 | 国产精品永久在线观看 | 九一国产精品 | 亚洲不卡视频 | 91亚洲视频 | 日韩影视一区 | 国产精品高潮视频 | 中韩毛片 | 麻豆一区产品精品蜜桃的特点 | 国产精品中文字幕在线观看 | 久久93| 国产欧美在线观看视频 | 日韩一区二区三区视频在线 | 女生扒开尿口给男生捅 | 国产一级黄 | av电影免费在线播放 | 久草精品在线观看 | 亚洲一区二区三区综合 | 巨大黑人极品videos精品 | 欧美一区二区久久久 | 99riAv国产精品无码鲁大师 | 欧美一区综合 | 亚洲高清视频在线播放 | 女人脱裤子让男人捅 | 性欧美大战久久久久久久久 | 99riav国产在线观看 | 中国成熟妇女毛茸茸 | 成人1区2区 | 久草在在线 | 大地资源二中文在线影视免费观看 | 丰满人妻一区二区三区免费视频 | 久久婷婷久久 | 少妇3p视频 | 国产手机av在线 | 精品少妇av | 日韩av网址大全 | 囯产精品久久久久久 | 免费精品视频一区二区三区 | 国产美女永久免费 | 欧美另类xxxx野战 | 欧美激情三区 | 卡一卡二在线视频 | 在线天堂1 | 东京av男人的天堂 | 久久露脸国语精品国产 | 欧美日韩一区二区三区电影 | 蜜臀av性久久久久蜜臀aⅴ麻豆 | 国产成人精品一区二区无码呦 | 一区二区三区在线 | 精品久久久无码中文字幕 | 精品一区二区久久久久蜜桃 | 日日夜操|