输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。

# -*- 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

 

posted @ 2017-09-03 17:06  kuqs(奇小东)  阅读(105)  评论(0)    收藏  举报