输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
思路一:
- 借助列表比较好理解
- 创建两个列表 遍历记录每个节点的val
- 合并一下两个列表,然后做一下排序
- 对排好序的列表每个整形元素创建节点并且存入到一个列表中
- 遍历列表链接各个节点
class Solution:
# 返回合并后列表
def Merge(self, pHead1, pHead2):
# write code here
if pHead1 == None:
return pHead2
if pHead2 == None:
return pHead1
if pHead2 == None and pHead1 == None:
return None
nodeList1 = []
nodeList2 = []
nodePointer1 = pHead1
nodePointer2 = pHead2
while nodePointer1:
nodeList1.append(nodePointer1.val)
nodePointer1 = nodePointer1.next
while nodePointer2:
nodeList2.append(nodePointer2.val)
nodePointer2 = nodePointer2.next
ret = nodeList1 + nodeList2
ret.sort()
tmp = []
for i in ret:
tmp.append(ListNode(i))
for i in range(len(tmp)-1):
tmp[i].next = tmp[i+1]
return tmp[0]