解题思路:(python3)
设置两个指针遍历两个链表,同时遍历并比较大小,如果1链表的当前节点值较小,将该节点添加到新链表中,1链表遍历指针后移一位,直到两个链表内所有节点都添加到新链表中。注意:题目要求新链表是通过拼接给定的两个链表的所有节点组成的,所以初始新建一个头节点,将头节点下一个节点指针指向两个链表中的最小节点,最后返回头节点的下一个节点。
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode:
l3 = ListNode(None)
l = l3
while(l1 and l2):
if(l1.val <= l2.val):
l.next = l1
l = l.next
l1 = l1.next
else:
l.next = l2
l = l.next
l2 = l2.next
if (l1 == None):
l.next = l2
else:
l.next = l1
return l3.next