输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
思路:依次比较进行递归
class ListNode:
def __init__(self,x):
self.val = x
self.next = None
class Solution:
def Merge(self,pHead1,pHead2):
# 注意考虑空链表的情况
if pHead1 == None and pHead2 == None:
return None
if pHead1 == None:
return pHead2
if pHead2 ==None:
return pHead1
pMergedHead = None
if pHead1.val < pHead2.val:
pMergedHead = pHead1
pMergedHead.next = self.Merge(pHead1.next,pHead2)
else:
pMergedHead = pHead2
pMergedHead.next = self.Merge(pHead1,pHead2.next)
return pMergedHead
if __name__ == '__main__':
# node1 = ListNode(1)
# node2 = ListNode(3)
# node3 = ListNode(5)
# node4 = ListNode(7)
# node1.next = node2
# node2.next = node3
# node3.next = node4
# node5 = ListNode(2)
# node6 = ListNode(4)
# node7 = ListNode(6)
# node8 = ListNode(8)
# node5.next = node6
# node6.next = node7
# node7.next = node8
node1 = None
node2 = None
s = Solution()
print(s.Merge(node1,node2))