亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

劍指offer:合并兩個排序的鏈表

發布時間:2020-07-27 20:23:29 來源:網絡 閱讀:273 作者:Jayce_SYSU 欄目:編程語言

題目描述
輸入兩個單調遞增的鏈表,輸出兩個鏈表合成后的鏈表,當然我們需要合成后的鏈表滿足單調不減規則。

# -*- coding: utf-8 -*-
# @Time         : 2019-04-24 10:17
# @Author       : Jayce Wong
# @ProjectName  : job
# @FileName     : mergeSortedLinkedList.py
# @Blog         : https://blog.51cto.com/jayce1111
# @Github       : https://github.com/SysuJayce

class ListNode:
    def __init__(self, x):
        self.val = x
        self.next = None

class Solution:
    # 返回合并后列表
    def Merge(self, pHead1, pHead2):
        # 如果任何一個鏈表為空,那么返回另一個鏈表
        if not pHead1:
            return pHead2
        if not pHead2:
            return pHead1

        # 選擇兩個頭節點中值最小的那個作為新的頭節點,然后新的頭節點的下一個節點就可以遞歸下去
        if pHead1.val < pHead2.val:
            head = pHead1
            head.next = self.Merge(pHead1.next, pHead2)
        else:
            head = pHead2
            head.next = self.Merge(pHead1, pHead2.next)
        return head

    def Merge2(self, pHead1, pHead2):
        # 也可以不用遞歸的方法,使用循環的方法來歸并鏈表
        # 借助兩個輔助節點,其中begin用于定位返回鏈表的頭節點,pre用于定位返回鏈表的當前節點
        begin = pre = ListNode(0)
        while pHead1 and pHead2:
            if pHead1.val < pHead2.val:
                pre.next = pHead1
                pre = pre.next
                pHead1 = pHead1.next
            else:
                pre.next = pHead2
                pre = pre.next
                pHead2 = pHead2.next
        # 注意處理兩個鏈表長度不一致的情況
        if not pHead1:
            pre.next = pHead2
        if not pHead2:
            pre.next = pHead1
        return begin.next

def main():
    p1 = ListNode(1)
    p1.next = ListNode(3)
    p1.next.next = ListNode(5)

    p2 = ListNode(2)
    p2.next = ListNode(4)
    p2.next.next = ListNode(6)

    p = Solution().Merge(p1, p2)
    while p:
        print(p.val)
        p = p.next

if __name__ == '__main__':
    main()
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

雅安市| 霍州市| 东乌珠穆沁旗| 长宁县| 石阡县| 石棉县| 昌邑市| 贵定县| 汝城县| 虹口区| 麻阳| 万年县| 乌兰浩特市| 新化县| 西宁市| 雷山县| 和顺县| 平果县| 石嘴山市| 阿巴嘎旗| 英山县| 桐梓县| 县级市| 噶尔县| 六盘水市| 镇安县| 湄潭县| 马关县| 遵义县| 平阴县| 门头沟区| 师宗县| 拜泉县| 新河县| 江北区| 土默特右旗| 东港市| 永福县| 克东县| 嘉鱼县| 临夏县|