def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode: if l1 is None: return l2 elif l2 is None: return l1 elif l1.val < l2.val: l1.next = self.mergeTwoLists(l1.next, l2) return l1 else: l2.next = self.mergeTwoLists(l1, l2.next) return l2 1. 2. 3. 4. 5...
# class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution: def mergeTwoLists(self, list1: Optional[ListNode], list2: Optional[ListNode]) -> Optional[ListNode]: # 使用一个哨兵结点 head_pre ,方便后续处理 head_pre: Optional[ListN...
ret=l1 ret.next=self.mergeTwoLists(l1.next, l2)else: ret=l2 ret.next=self.mergeTwoLists(l1, l2.next)returnret
l2.next=self.mergeTwoLists(l1,l2.next)returnl2 方法2 这道题除了使用递归之外,还可以使用迭代的方法求解,使用迭代的方法求解也非常简单。这里可以采用merge sort(归并排序)当中进行merge(归并)的一个思想。 也就是说我们可以分别在两个链表的表头对链表的value进行比较,将较小的一个node放到新的,我们需要进行...
class Solution: def mergeTwoLists(self, head1: ListNode, head2: ListNode) -> ListNode: if head1 is None: # 如果 head1 为空,那么直接返回 head2 return head2 elif head2 is None: # 如果 head2 为空,那么直接返回 head1 return head1 elif head1.val > head2.val: # 如果 head1 大于 he...
ret.next=self.mergeTwoLists(l1.next,l2)else:ret=l2 ret.next=self.mergeTwoLists(l2.next,l1)returnret 结果:AC 四、学习与记录 这个其实算是一个归并排序: 归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列...
def mergeTwoLists(l1,l2): i,j,l3 = 0,0,[] while i<len(l1) and j<len(l2): if l1[i] <= l2[j]: l3.append(l1[i]) i += 1 else: l3.append(l2[j]) j += 1 if len(l1) == i: while j<len(l2): l3.append(l2[j]) j += 1 else: while i<len(l1): l3.append...
合并两个有序链表 首先是创建一个链表类 class ListNode(): def __init__(self,val,next=None): self.val=val self.next=next 1. 2. 3. 4. 1.非递归的写法 将两个链表的头部进行比较从小到大相连 #非递归写法 def fun(l1,l2): #将p1,p2的第一个元素进行比较 ...
l = s.mergeTwoLists(l1,l2)whilel:print(l.val) l = l.next AI代码助手复制代码 遍历法 这个算法更简单了,我们只需要遍历链表l1和l2然后再比较大小即可,对于最后没遍历完的部分,直接追加到合并链表的后面即可。 classSolution:defmergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode:#用来合并链...
首先,定义一个辅助方法 mergeTwoLists,用于将两个有序链表合并成一个有序链表。 接着,定义一个辅助方法 mergeKListsHelper,该方法接收一个链表数组 lists、起始索引 start 和结束索引 end,返回合并后的链表。 在mergeKListsHelper 方法中,首先判断起始索引 start 是否大于结束索引 end,如果是,则直接返回 None。