做的时候觉得思路很清晰,pa、pb分别在两个链表上移动,pc是新链表;用测试案例 l1=[5], l2= [1,2,3,4] 来测试以后,发现返回结果是[1,5]用类似的一个链表的所有元素都比另外一个链表的所有元素都大的case去测试,发现结果都是只有两个元素,第一个是最小的,第二个是最大的,中间的元素全部忽略了,实在不知道是为什么,就像是while循环里面的 pb = pb.next 这些没有执行一样;求大神帮忙看一下,感激不尽!# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution(object):
def mergeTwoLists(self, l1, l2):
"""
:type l1: ListNode
:type l2: ListNode
:rtype: ListNode
"""
if l1 is None:
return l2
if l2 is None:
return l1
pa = l1
pb = l2
if l1.val <= l2.val:
pc = l1
pa = pa.next
else:
pc = l2
pb = pb.next
while pa is not None and pb is not None:
if pa.val <= pb.val:
pc.next = pa
pa = pa.next
else:
pc.next = pb
pb = pb.next
if pa is not None:
pc.next = pa
if pb is not None:
pc.next = pb
return pc
添加回答
举报
0/150
提交
取消