zoukankan      html  css  js  c++  java
  • 21. 合并两个有序链表

    将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 

    示例:

    输入:1->2->4, 1->3->4
    输出:1->1->2->3->4->4

     1 # Definition for singly-linked list.
     2 # class ListNode:
     3 #     def __init__(self, val=0, next=None):
     4 #         self.val = val
     5 #         self.next = next
     6 class Solution:
     7     def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode:
     8         if l1 and l2:
     9             if l1.val>l2.val:
    10                 l1,l2=l2,l1
    11             l1.next=self.mergeTwoLists(l1.next,l2)
    12         return l1 or l2

    代码流程:

    1.判断 l1 或 l2 中是否有一个节点为空,如果存在,那么我们只需要把不为空的节点接到链表后面即可
    2.对 l1 和 l2 重新赋值,使得 l1 指向比较小的那个节点对象
    3.修改 l1 的 next 属性为递归函数返回值
    4.返回 l1,注意:如果 l1 和 l2 同时为 None,此时递归停止返回 None

  • 相关阅读:
    助教学期总结
    助教学习总结
    第十二周助教总结
    第十一周助教总结
    第十周助教总结
    第九周助教总结
    第八周助教总结
    第八周作业——基础
    19秋第三周助教总结
    助教学习总结
  • 原文地址:https://www.cnblogs.com/hly97/p/13257549.html
Copyright © 2011-2022 走看看