劍指Offer16:合併兩個排序的連結串列
阿新 • • 發佈:2018-12-04
思路:
1.新建兩個連結串列mergeHead和p,初始值為90。
2.判斷pHead1.val和pHead2.val值的關係。
若pHead1.val>=pHead2.val,將pHead2放入mergeHead.next 然後pHead2指標往後移一步。
若pHead1.val<pHead2.val,將pHead1放入mergeHead.next 然後pHead1指標往後移一步。
最後mergeHead指標往後移一步。繼續迴圈直到pHead1和pHead2有一個為空就結束。
3.再依次判斷pHead1和pHead2是否為空,若沒有則新增到mergeHead裡。最終返回p.next。
# -*- coding:utf-8 -*- # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: # 返回合併後列表 def Merge(self, pHead1, pHead2): # write code here mergeHead = ListNode(90) p = mergeHead while pHead1 and pHead2: if pHead1.val >= pHead2.val: mergeHead.next = pHead2 pHead2 = pHead2.next else: mergeHead.next = pHead1 pHead1 = pHead1.next mergeHead = mergeHead.next if pHead1: mergeHead.next = pHead1 elif pHead2: mergeHead.next = pHead2 return p.next