2018-10-21Merge K Sorted Lists

  1. Merge K Sorted Lists
    Merge k sorted linked lists and return it as one sorted list.
    LC: 23
    Analyze and describe its complexity.

Example
Given lists:

[
2->4->null,
null,
-1->null
],
return -1->2->4->null.

"""
Definition of ListNode
class ListNode(object):

    def __init__(self, val, next=None):
        self.val = val
        self.next = next
"""
import heapq
class Type:
    def __init__(self, li):
        self.li = li
    def __lt__(self, other):
        return self.li.val - other.li.val < 0 
    def __gt__(self, other):
        return self.li.val - other.li.val > 0        
    def __eq__(self, other):
        return self.li.val - other.li.val == 0
    
class Solution:
    """
    @param lists: a list of ListNode
    @return: The head of one sorted list.
    """
    def mergeKLists(self, lists):
        heap = []
        for li in lists:
            if not li:
                continue
            heapq.heappush(heap, Type(li))
        
        dummy = trav = ListNode(-1)
        while heap:
            li_type = heapq.heappop(heap)
            trav.next = li_type.li
            trav = trav.next
            li_type.li = li_type.li.next
            if li_type.li:
               heapq.heappush(heap, li_type) 
        return dummy.next
  • Time: O(nklog(k))
  • Space: O(k) for constructing priority queue
    Notes:
  1. I practiced constructing comparator here. It should be noted that heap queue is min heap. So it is fine if I am to sort ascending numbers.
  2. Another key point of this problem is to traverse linked list.
    • It is important to use dummy = ListNode(-1) and then return dummy.next at the end.
    • Also, it should be coupled with trav = dummy and traverse all linked lists.
  3. As mentioned in here, the operator module functions allow multiple levels of sorting. I could put (list.val, list) into heap queue so that heap is sorted by head node's value (ascending order).
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末竭沫,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子驳糯,更是在濱河造成了極大的恐慌淘正,老刑警劉巖蝌诡,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡士聪,警方通過查閱死者的電腦和手機遮婶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門蝗碎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人旗扑,你說我怎么就攤上這事蹦骑。” “怎么了臀防?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵眠菇,是天一觀的道長。 經(jīng)常有香客問我袱衷,道長琼锋,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任祟昭,我火速辦了婚禮缕坎,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘篡悟。我一直安慰自己谜叹,他們只是感情好匾寝,可當我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著荷腊,像睡著了一般艳悔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上女仰,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天猜年,我揣著相機與錄音,去河邊找鬼疾忍。 笑死乔外,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的一罩。 我是一名探鬼主播杨幼,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼聂渊!你這毒婦竟也來了差购?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤汉嗽,失蹤者是張志新(化名)和其女友劉穎欲逃,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體饼暑,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡稳析,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了撵孤。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡竭望,死狀恐怖邪码,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情咬清,我是刑警寧澤闭专,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站旧烧,受9級特大地震影響影钉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜掘剪,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一平委、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧夺谁,春花似錦廉赔、人聲如沸肉微。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽碉纳。三九已至,卻和暖如春馏艾,著一層夾襖步出監(jiān)牢的瞬間劳曹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工琅摩, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留铁孵,地道東北人。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓迫吐,卻偏偏與公主長得像库菲,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子志膀,可洞房花燭夜當晚...
    茶點故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內(nèi)容

  • <center>#1 Two Sum</center> link Description:Given an arr...
    鐺鐺鐺clark閱讀 2,154評論 0 3
  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問題, 分享了一些自己做題目的經(jīng)驗熙宇。 張土汪:刷leetcod...
    土汪閱讀 12,747評論 0 33
  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi閱讀 7,334評論 0 10
  • 小凳子,整整齊溉浙,排排坐烫止,我們來,聽報告戳稽; 手機錄馆蠕,本子記,聽與練惊奇,取真經(jīng)互躬,教寶寶; 曉丹丹颂郎,自駕車吼渡,接大咖,買午餐...
    clara_pp閱讀 480評論 0 1
  • 太陽把陽光大把大把地傾灑在窗臺上乓序,東西兩盆虎皮海棠爭相斗艷寺酪,桔子樹在陽光下綠得發(fā)亮,朱頂紅正在忙著抽箭替劈,山影冷眼一...
    香梅1閱讀 179評論 0 1