zoukankan      html  css  js  c++  java
  • LeetCode第21题Merge Two Sorted Lists

    LeetCode第21题Merge Two Sorted Lists

     下面是实现的代码

    class Solution:
        def mergeTwoLists(self, l1, l2):
            """
            :type l1: ListNode
            :type l2: ListNode
            :rtype: ListNode
            """
            re=ListNode(0)
            p = re
            while l1!=None and l2!=None:
                if l1.val<l2.val:
                    p.next=l1
                    p = l1
                    l1=l1.next
                else:
                    p.next = l2
                    p = l2
                    l2 = l2.next
            if l2==None and l1!=None:
                p.next=l1
            if l1==None and l2!=None:
                p.next = l2
            return re.next

    下面是问题的讲解:

    1、要清楚l1和l2是两个LisiNode,这是两个链表的头结点。

    2、定义一个节点re用于存储结果的头结点,定义一个p指针(在Python中没有指针,在这里就相当于是c语言中的指针)。

    3、一个循环,用于遍历l1和l2两个链表。但是不知道谁的元素少,所以就将while的判断条件定为

    l1!=None and l2!=None。这样就不会出现越界的情况。

    4、在while里面用if判断l1和l2中元素的大小,按着从小到大的顺序将他们的节点插入到re中(re这个头结点不能动,利用p来遍历往后移动)。不要忘了修改p和l1和l2的值,不断往后移动。

    5、当一个链表结束了,而另一个链表没有结束的话,就将没有结束的列表链接早re的后面。

    6、最后返回的是re.next。因为题目要求的是直接返回的是结构,不需要头结点的。

     
  • 相关阅读:
    【转载】实时嵌入式软件开发的25个常见错误
    软件测试高级测评师培训-白盒测试所用工具
    SQL update select语句
    JS对URL字符串进行编码/解码分析
    Java利用jacob实现文档格式转换
    Web打印--Lodop API
    常用正则表达式
    截取视频第一帧作为预览图片
    plupload api
    URL特殊字符的转义
  • 原文地址:https://www.cnblogs.com/andingding-blog/p/8654452.html
Copyright © 2011-2022 走看看