国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

合并兩個已排序的鏈表

ormsf / 3305人閱讀

摘要:合并兩個已排序的鏈表合并兩個已排序的鏈表,新鏈表中的每個節(jié)點必須是來自輸入的兩個鏈表的節(jié)點即不能構(gòu)造新的節(jié)點,返回新鏈表的頭部。

合并兩個已排序的鏈表 Merge Two Sorted Lists

合并兩個已排序的鏈表,新鏈表中的每個節(jié)點必須是來自輸入的兩個鏈表的節(jié)點(即不能構(gòu)造新的節(jié)點),返回新鏈表的頭部。

Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.

example 1

input: 1->2->4, 3->8
output: 1->2->3->4->8

思路

head指向輸入兩個鏈表中頭節(jié)點較小值,作為新鏈表的頭部

tail指向新鏈表表尾,初始狀態(tài)head = tail

a掃描l1,b掃描l2,比較ab節(jié)點內(nèi)值的大小,將較小的加入tail之后,ab中較小的向后移動一個節(jié)點,較大的不動,tail向后移動一個節(jié)點保證任意時候指向都是新鏈表尾部

l1l2其中一個已經(jīng)遍歷完,若另一個還有元素,添加到tail之后

代碼
# Definition for singly-linked list.
class ListNode(object):
    def __init__(self, x):
        self.val = x
        self.next = None

class Solution(object):
    def mergeTwoLists(self, l1, l2):
        """
        :type l1: ListNode
        :type l2: ListNode
        :rtype: ListNode
        """
        if None in (l1, l2):
            return l1 or l2
        head = tail = l1 if l1.val <= l2.val else l2
        a = l1 if l1.val > l2.val else l1.next
        b = l2 if l1.val <= l2.val else l2.next
        while a and b:
            if a.val <= b.val:
                tail.next = a
                tail, a = tail.next, a.next
            else:
                tail.next = b
                tail, b = tail.next, b.next
        tail.next = a or b
        return head

本題以及其它leetcode題目代碼github地址: github地址

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/38662.html

相關(guān)文章

  • 合并n個排序鏈表

    摘要:合并個已排序的鏈表合并個已排序的鏈表,新鏈表中的每個節(jié)點必須是來自輸入的原鏈表的節(jié)點即不能構(gòu)造新的節(jié)點,返回新鏈表的頭部。思路參照本人之前已發(fā)表的合并兩個已排序的鏈表,只需要將此算法應(yīng)用次即可得到新鏈表。 合并n個已排序的鏈表 Merge k Sorted Lists 合并n個已排序的鏈表,新鏈表中的每個節(jié)點必須是來自輸入的原鏈表的節(jié)點(即不能構(gòu)造新的節(jié)點),返回新鏈表的頭部。 Me...

    HtmlCssJs 評論0 收藏0
  • 劍指offer:合并兩個排序鏈表(Java)

    摘要:問題描述輸入兩個單調(diào)遞增的鏈表,輸出兩個鏈表合成后的鏈表,當(dāng)然我們需要合成后的鏈表滿足單調(diào)不減規(guī)則。 1.問題描述 輸入兩個單調(diào)遞增的鏈表,輸出兩個鏈表合成后的鏈表,當(dāng)然我們需要合成后的鏈表滿足單調(diào)不減規(guī)則。 2.思路 方法1:非遞歸方法 根據(jù)題目這個很類似排序中的外排過程,兩個數(shù)組分別排好序,然后再把他們整體進行排序.所以這道題思想很簡單,就是用兩個變量分別遍歷兩個鏈表.比較遍歷到...

    darkbaby123 評論0 收藏0
  • 用 JavaScript 實現(xiàn)鏈表操作 - 15 Merge Sort

    摘要:需求實現(xiàn)函數(shù)進行歸并排序。解法歸并排序的運行方式是,遞歸的把一個大鏈表切分成兩個小鏈表。切分到最后就全是單節(jié)點鏈表了,而單節(jié)點鏈表可以被認為是已經(jīng)排好序的。這時候再兩兩合并,最終會得到一個完整的已排序鏈表。用把排好序的兩個鏈表合并起來。 TL;DR 對鏈表進行歸并排序,系列目錄見 前言和目錄 。 需求 實現(xiàn)函數(shù) mergeSort() 進行歸并排序。注意這種排序法需要使用遞歸。在 fr...

    X_AirDu 評論0 收藏0
  • 【刷算法】合并兩個排序的單鏈表

    摘要:題目描述輸入兩個單調(diào)遞增的鏈表,輸出兩個鏈表合成后的鏈表,當(dāng)然我們需要合成后的鏈表滿足單調(diào)不減規(guī)則。 題目描述 輸入兩個單調(diào)遞增的鏈表,輸出兩個鏈表合成后的鏈表,當(dāng)然我們需要合成后的鏈表滿足單調(diào)不減規(guī)則。 分析 首先考慮兩個鏈表的頭部哪個成為新鏈表的頭,顯然是值小的那個是新的頭;然后是合并時,兩個鏈表上分別有一個指針cur1和cur2,比較兩個指針指向的節(jié)點值大小,較小的鏈接到新鏈表的...

    2501207950 評論0 收藏0

發(fā)表評論

0條評論

ormsf

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<