题目描述
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
解答:
# -*- 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
arr=[]
while pHead1:
arr.append(pHead1.val)
pHead1=pHead1.next
while pHead2:
arr.append(pHead2.val)
pHead2=pHead2.next
arr=sorted(arr)
head=ListNode(0)
p=head
for i in arr:
p.next=ListNode(i)
p=p.next
return head.next
总结:
1. 这个题要我合并两个链表,那么对于处理链表问题,我的方法都比较笨,但也比较好理解。就是遍历两个链表,把他们的元素一个一个的取出来,放进我事先准备好的空列表。
2. 题目之后告诉我要让合成后的链表满足单调不减规则,那我就将这个列表排序即可。
3. 最后要把列表里的元素变成链表的形式,还是一个笨办法,构造头结点,一个一个的把这些元素循环遍历出来,然后把他们连接起来。