# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode:
all_listnode = tmp_listnode = ListNode()
while l1 or l2:
if l1 and l2:
if l1.val <= l2.val:
new_nodelist = ListNode()
new_nodelist.val = l1.val
tmp_listnode.next = new_nodelist
tmp_listnode = tmp_listnode.next
l1 = l1.next
else:
new_nodelist = ListNode()
new_nodelist.val = l2.val
tmp_listnode.next = new_nodelist
tmp_listnode = tmp_listnode.next
l2 = l2.next
elif l1 and not l2:
new_nodelist = ListNode()
new_nodelist.val = l1.val
tmp_listnode.next = new_nodelist
tmp_listnode = tmp_listnode.next
l1 = l1.next
elif not l1 and l2:
new_nodelist = ListNode()
new_nodelist.val = l2.val
tmp_listnode.next = new_nodelist
tmp_listnode = tmp_listnode.next
l2 = l2.next
return all_listnode.next
Pycharm调试版本:
# Definition for singly-linked list.
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
class Solution:
def mergeTwoLists(l1 ,l2):
origin_node1 = new_node1 = ListNode()
origin_node2 = new_node2 = ListNode()
for i in l1:
new_node = ListNode()
new_node.val = i
new_node1.next = new_node
new_node1 = new_node1.next
for i in l2:
new_node = ListNode()
new_node.val=i
new_node2.next=new_node
new_node2=new_node2.next
origin_node1 = origin_node1.next
origin_node2 = origin_node2.next
l1 = origin_node1
l2 = origin_node2
all_listnode = tmp_listnode = ListNode()
while l1 or l2:
if l1 and l2:
if l1.val <= l2.val:
new_nodelist = ListNode()
new_nodelist.val = l1.val
tmp_listnode.next = new_nodelist
tmp_listnode = tmp_listnode.next
l1 = l1.next
else:
new_nodelist = ListNode()
new_nodelist.val = l2.val
tmp_listnode.next = new_nodelist
tmp_listnode = tmp_listnode.next
l2 = l2.next
elif l1 and not l2:
new_nodelist = ListNode()
new_nodelist.val = l1.val
tmp_listnode.next = new_nodelist
tmp_listnode = tmp_listnode.next
l1 = l1.next
elif not l1 and l2:
new_nodelist = ListNode()
new_nodelist.val = l2.val
tmp_listnode.next = new_nodelist
tmp_listnode = tmp_listnode.next
l2 = l2.next
return all_listnode.next
l1 = [1, 2, 4]
l2 = [1, 3, 4]
print(Solution().mergeTwoLists(l1,l2))