# -*- coding:utf-8 -*-
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
# 返回合并后列表
# 递归解法28ms 5756kb
def Merge(self, pHead1, pHead2):
# write code here
if pHead1 == None:
return pHead2
if pHead2 == None:
return pHead1
if pHead1.val <= pHead2.val:
pHead1.next = Solution.Merge(self, pHead1.next, pHead2)
return pHead1
else:
pHead2.next = Solution.Merge(self, pHead1, pHead2.next)
return pHead2
1 def Merge(self, pHead1, pHead2):
2 # 循环解法 30ms 5760kb
3 if pHead1 == None:
4 return pHead2
5 if pHead2 == None:
6 return pHead1
7 if pHead1.val <= pHead2.val:
8 pMergHead = pHead1
9 pHead1 = pHead1.next
10 else:
11 pMergHead = pHead2
12 pHead2 = pHead2.next
13 p = pMergHead
14 while pHead1 and pHead2:
15 if pHead1.val <= pHead2.val:
16 pMergHead.next = pHead1
17 pHead1 = pHead1.next
18 else:
19 pMergHead.next = pHead2
20 pHead2 = pHead2.next
21 pMergHead = pMergHead.next
22
23 if pHead1 == None:
24 pMergHead.next = pHead2
25 elif pHead2 == None:
26 pMergHead.next = pHead1
27 return p