题目描述
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
思路:初始化两个链表头,其中一个表头用以记录两个单调递增链表比较后的结果,另一个用以返回结果。
用while循环:
①如果两个链表不为空,比较进行,并将小的那个赋给合并的链表头。小表头继续走一步,合并表头继续走一步。
②如果两个链表有其一为空,那么跳出循环,并将另一不为null的链表的后续部分赋给合并链表。
代码如下:
# -*- coding: utf-8 -*-
class ListNode():
def __init__(self,x):
self.val = x
self.next = None
def function(listNode1,listNode2):
p = merge = ListNode(0)
while listNode1 and listNode2:
if listNode1.val > listNode2.val:
merge.next = listNode2
listNode2 = listNode2.next
elif listNode2.val >= listNode1.val:
merge.next = listNode1
listNode1.next = listNode1
merge.next = merge
#注意:当由于其中一链表listNode1或者listNode2为null,导致跳出while循环时,
#此时,还需要将另一不为null的链表的后续部分赋给合并链表。
merge = listNode1 or listNode2
return p.next