做的时候觉得思路很清晰,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
小小神兽
随时随地看视频慕课网APP
相关分类