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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

21. Merge Two Sorted Lists

發布時間:2025/4/16 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 21. Merge Two Sorted Lists 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目來自于leetcode,要求是將兩個已經有序的鏈表拼接成一個有序的鏈表,鏈表結構如下:

public class ListNode{int val;ListNode next;ListNode(int x){val=x;}}

示意圖如下,一個長方形成為節點,一個鏈表至少有一個節點。

方法一:首先創建一個新的鏈表L,比較了L1和L2當前結點的Val,小的加入到L中,同時將節點向后移,

    直到有一個鏈表為空。最后將另一個非空的鏈表添加到L即可。時間復雜度為O(n+m).

    Header:新鏈表的頭節點,pre作為當前鏈表的最后一個節點,具體步驟如下:

    1.判斷L1和L2其中一個是否為空,若有為空,執行3,否則執行2

    2.比較L1和L2的Val值,小的添加到pre節點的后面,并向右移動一個節點(ListNode=ListNode.next,注意此時鏈表ListNode已經發生改變了),

    同時pre指向Header鏈表的最后一個。執行1.

    3.若L1不為空,則將L1添加到pre的后面。若L2不為空則將L2添加到pre節點的后面。

    具體實現代碼如下:

public ListNode mergeTwoLists(ListNode l1, ListNode l2){ListNode header=new ListNode(0);ListNode pre=header;while(l1!=null&&l2!=null){if(l1.val>l2.val){pre.next=l2;l2=l2.next;}else{pre.next=l1;l1=l1.next;}pre=pre.next;}if(l2!=null){pre.next=l2;}if(l1!=null){pre.next=l1;}return header.next;}

方法二:由于L1和L2已經是有序了,所以可以考慮將L2插入到L1中,這里只講插入操作怎么進行,具體過程看java代碼

    

    Header 任然為頭結點,pre為當前節點的末節點,,紅線代表需要修改的指向,綠線代表需要刪除的指向

,現在考慮L2的Val比L1小的情況,

    插入步驟如下:

    1。保留L2下一個節點為next

    2.修改L2下一個節點的指向為pre指向的下個節點

    3.修改pre指向的節點為L2

    4.將pre和L2各自向右移動一個節點

    具體代碼如下:

public ListNode mergeTwoLists(ListNode l1, ListNode l2){ListNode helper=new ListNode(0);ListNode pre=helper;helper.next=l1;while(l1!=null&&l2!=null){if(l1.val>l2.val){ListNode next=l2.next;l2.next=pre.next;pre.next=l2;l2=next;}else{l1=l1.next;}pre=pre.next;}if(l2!=null){pre.next=l2;}return helper.next;}

 方法3:采用遞歸的思想,若將函數看成求兩個鏈表當前較小的節點,遞歸結束為兩個鏈表中有一個為null。

    步驟一:1.創建一個節點header為L1和L2較小的節點

        2.創建一個中間變量nonheader為L1和L2較大的節點

·       ? 3.將header下個節點指向遞歸函數的返回結果,但此時傳參中header已經向右移動了一個單位

   

  代碼如下:

public ListNode mergeTwoLists(ListNode l1, ListNode l2) {if(l1==null) return l1;if(l2==null) return l2;ListNode head=(l1.val<l2.val)?l1:l2;ListNode nonhead=(l1.val<l2.val)?l2:l1;head.next=mergeTwoLists(head.next,nonhead);return head;}

這三種方法都可以實現,總體效果最好的時遞歸的方法。如有紕漏,希望能得到大家的幫助。

轉載于:https://www.cnblogs.com/bufferflies/p/7644347.html

總結

以上是生活随笔為你收集整理的21. Merge Two Sorted Lists的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 亚洲爱爱网 | 亚洲激情自拍 | www.四虎在线观看 | 91成人免费观看 | 免费看大片a| 欧美视频一区二区三区四区在线观看 | 99精品一区二区 | 国内一级视频 | 国产原创视频在线 | 欧美在线色图 | 亚洲深爱 | 在线网站av | 北京富婆泄欲对白 | av网站大全在线 | 青青青手机视频在线观看 | 免费看黄色的视频 | 精品一区二区三区在线免费观看 | 日韩成人免费在线视频 | 国产三级国产精品国产国在线观看 | 欧美一区二区不卡视频 | 久热精品视频在线观看 | 中文字幕人妻一区二区三区 | 日韩欧美理论片 | 久久久久五月天 | 日韩精品一区二区免费视频 | 牛牛精品一区二区 | 国产一区二区亚洲 | 久久国产柳州莫菁门 | 中文字幕在线视频播放 | 午夜天堂网 | 久久人人爽人人爽人人片 | 91在线视频在线观看 | 成人日韩在线观看 | 人妻互换一区二区三区四区五区 | 日韩午夜免费 | 天天做夜夜爱 | 桃花色综合影院 | wwwsss在线观看 | 人人狠狠综合久久亚洲 | 大陆极品少妇内射aaaaaa | 美女在线免费视频 | 二男一女一级一片 | 国产做受高潮 | 亚洲成人黄色小说 | 四虎国产精品免费 | 强辱丰满人妻hd中文字幕 | 国产精品国产三级国产aⅴ中文 | www.色播| 婷婷综合激情 | 国产精品一区三区 | 一级黄色在线观看 | 日日爽天天 | 一级片小视频 | 做a爰小视频 | 日韩欧美精品一区二区三区 | 免费色片网站 | 国产激情一区二区三区 | 国产精品探花在线观看 | 日韩免费视频网站 | 一级黄色大片免费观看 | 九九热精品视频在线 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 欧美bbbbb性bbbbb视频 | 久久精品国产亚洲AV无码男同 | 手机看片国产日韩 | 亚洲人和日本人hd | 风韵少妇spa私密视频 | 国产九九久久 | 欧美 日韩 国产 成人 | 亚洲欧美在线视频 | 黄色网页在线看 | 亚洲欧美大片 | 欧美18aaaⅹxx | 久久久久久久久国产精品 | xxx视频网站 | 日本a一级片 | 成人h动漫精品一区二区无码 | 性涩av| 精品国产乱码久久久久久预案 | 相亲对象是问题学生动漫免费观看 | 日韩av不卡一区 | 激情久久中文字幕 | 国产一区二区在线免费观看 | 亚洲资源网 | 制服丝袜av一区二区三区下载 | 国产精品久久久久久久久免费软件 | 原创少妇半推半就88av | 特级西西www444人体聚色 | 亚洲另类一区二区 | 小镇姑娘1979版 | 欧洲熟妇的性久久久久久 | 久久人妻精品白浆国产 | 色图社区| 奇米影视在线视频 | 国产精品va无码一区二区三区 | 亚洲综合网站 | 久久久久婷 | 国产精品一区在线 | 天天搞天天干 |