leetcode中怎么合并兩個排序的鏈表,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
在尼勒克等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站建設(shè)、網(wǎng)站設(shè)計 網(wǎng)站設(shè)計制作按需制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計,成都營銷網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站建設(shè)公司,尼勒克網(wǎng)站建設(shè)費用合理。
輸入兩個遞增排序的鏈表,合并這兩個鏈表并使新鏈表中的節(jié)點仍然是遞增排序的。 示例1: 輸入:1->2->4, 1->3->4 輸出:1->1->2->3->4->4 限制: 0 <= 鏈表長度 <= 1000 來源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/he-bing-liang-ge-pai-xu-de-lian-biao-lcof 著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) { ListNode newHead = new ListNode(-1); ListNode cursor = newHead; while(l1 != null && l2 != null) { if (l1.val <= l2.val) { cursor.next = l1; l1 = l1.next; } else { cursor.next = l2; l2 = l2.next; } cursor = cursor.next; } if (l1 == null) { cursor.next = l2; } if (l2 == null) { cursor.next = l1; } return newHead.next; } }
這里先創(chuàng)建一個newHead節(jié)點來表示合并后鏈表的頭指針,然后創(chuàng)建一個cursor,其初始值為newHead;之后同時遍歷l1及l(fā)2,取最小的作為cursor.next,同時該鏈表前進一個節(jié)點,并且cursor跟著前進;最后再將cursor.next指向尚未遍歷完的鏈表的剩余節(jié)點;之后返回頭指針指向的節(jié)點
合并兩個有序鏈表的基本思路就是設(shè)置一個cursor以及新鏈表的頭指針,然后同時遍歷兩個鏈表,取小的節(jié)點作為cursor的next,然后該鏈表往前進,cursor也跟著往前進,最后再將cursor.next指向尚未遍歷完的鏈表的剩余節(jié)點
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。