# -*- 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
有序链表合并,核心在于合并的同时保证有效性,由于python不用考虑释放问题,所以相对比较简单。
我们可以新建一个头节点来作为新的链表头,然后按照比较的大小开始,依次加入,到后边有点类似于栈,出一个后移一位
然后将剩下的一个链表,连接在新链表的后边即可。