91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

劍指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

政和县| 晋宁县| 乌苏市| 静乐县| 海城市| 大余县| 晋江市| 兴仁县| 黄龙县| 萝北县| 新巴尔虎左旗| 罗源县| 高密市| 隆德县| 华蓥市| 南川市| 绵竹市| 汤阴县| 杭锦旗| 锦屏县| 北辰区| 潮州市| 娄底市| 奉化市| 巴中市| 乌鲁木齐市| 龙里县| 元江| 涟源市| 交城县| 鹤壁市| 丹凤县| 台安县| 南京市| 南雄市| 岳阳县| 临沭县| 平顶山市| 荥阳市| 武义县| 上高县|