实现思路:
1、两个链表已经有序,取出两个链表的当前节点比较val,将较小的节点链接到新的链表上,并将较小的链表当前节点向前推进一个节点
2、循环直至其中一个链表为空,比较另个链表是否有剩余,如果有就将剩余的链表链接到临时链表之后,
3、返回临时链表第一个链接的节点指针
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
def printlist(head):
while(head !=None):
print(head.val,end=',')
head=head.next
class Solution:
def mergeTwoLists(self, l1, l2):
'''新建临时链表'''
tmp_head=ListNode(None)
head=tmp_head
while (l1!=None and l2!=None):
'''比较两个链表当前节点的val,较小的连接到临时链表尾部'''
if (l1.val<l2.val):
tmp_head.next=l1
l1=l1.next
else:
tmp_head.next=l2
l2=l2.next
'''推进临时链表的当前节点'''
tmp_head=tmp_head.next
'''判断那个链表还有剩余'''
if(l1 !=None):
tmp_head.next=l1
if (l2!=None):
tmp_head.next=l2
return head.next
p1,p2,p3,p4,p5,p6=ListNode(1),ListNode(2),ListNode(3),ListNode(4),ListNode(5),ListNode(6)
p1.next=p3
p3.next=p5
p2.next=p4
p4.next=p6
printlist(p1)
print('||',end='')
printlist(p2)
print('-->',end='')
x=Solution()
mp=x.mergeTwoLists(p1,p2)
printlist(mp)
'''输出结果:1,3,5,||2,4,6,-->1,2,3,4,5,6,
'''