日韩性视频-久久久蜜桃-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两两交换链表中的节点的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 九九九久久久 | 99思思| 国产成人无码精品久久久性色 | 久久精品国产成人av | 日韩一级成人 | 男人天堂成人 | 91日日| 免费观看全黄做爰的视频 | 国产女合集 | 玖玖热视频 | 久久久久久亚洲 | 人人玩人人干 | 欧美黑人性xxx| 欧美日韩一区免费 | 九九在线观看免费高清版 | 无码人妻丰满熟妇精品区 | 天堂男人在线 | 国产在线一区二 | 亚洲国产成人综合 | 国产网站大全 | 亚洲色图清纯唯美 | 免费看黄色的网站 | 国模在线 | 日韩视频第一页 | 裸体一区二区 | 亚洲爆乳无码一区二区三区 | 亚洲综合久久av一区二区三区 | 一本大道综合伊人精品热热 | 欧美黄色一级生活片 | japanese21ⅹxx日本 | 91福利专区 | 色一区二区 | 永久在线免费观看 | 国产黄在线观看 | 日本毛片在线看 | 日韩sese | 亚洲一区 欧美 | 毛片随便看 | av图区| 菲律宾黄色片 | 后宫秀女调教(高h,np) | 国产片高清在线观看 | 美女扒开大腿让男人桶 | 欧美成人乱码一区二区三区 | 五月综合色 | 误杀1电影免费观看高清完整版 | 京香julia在线观看 | 97久久人澡人人添人人爽 | 成人av一级 | 潘金莲激情呻吟欲求不满视频 | 日本最黄网站 | 99久久精品免费看 | 国产美女视频网站 | 少妇一级淫片免费放2 | 久久免费公开视频 | 久久婷五月天 | 精品国产一区在线 | 午夜大片在线观看 | 欧美va在线观看 | 国产一区二区三区www | 怡红院最新网址 | 欧美激情免费观看 | 国产老女人精品毛片久久 | 在线视频99| 人人草在线观看 | 女女同性女同一区二区三区按摩 | 星铁乱淫h侵犯h文 | 欧美一级夜夜爽 | 青青操在线 | 丰满人妻一区二区三区免费视频 | 喷潮在线观看 | 丰满多毛的大隂户视频 | 色婷婷久久综合中文久久蜜桃av | 超碰人人爱 | 无遮挡毛片 | 97在线观看视频 | 国产一区二区三区成人 | 91男女视频 | 东北高大丰满bbbbzbbb | 国产免费无码一区二区 | 99久久婷婷 | 一级片黄色 | 欧美日韩精品在线视频 | 新91视频在线观看 | 香蕉久久影院 | 88xx成人永久免费观看 | 91视频最新入口 | 亚洲av无码专区首页 | 波多野结衣黄色片 | 毛片aaaa| 国产三级久久久久 | 红桃视频一区二区三区免费 | 国产无套免费网站69 | 成人在线观看av | 手机在线看永久av片免费 | 少妇性xxxxxxxxx色武功 | 在哪看毛片 | 国产黄色片av | 欧美在线专区 |