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。因为题目要求的是直接返回的是结构,不需要头结点的。

     
  • 相关阅读:
    Bootstrap学习
    Bootstrap学习
    Windows下Apache+Django+mod_wsgi的static和media问题处理
    Windows编译安装mod_wsgi,配合使用Django+Apahce
    Bootstrap学习
    Chapter 21_4 捕获
    Chapter 21_3 模式
    新发现的一些C函数
    Chapter 21_2 模式匹配函数
    Chapter 21_1 字符串函数
  • 原文地址:https://www.cnblogs.com/andingding-blog/p/8654452.html
Copyright © 2011-2022 走看看