• Leetcode代码补全——链表


    通过补全代码可以更深刻的体会到,链表就是一个存储方式,通过一单元的存储指向下一单元,而查看单元内容通过头部开始的指针依次遍历。这是leetcode里融合两个链表的题目,具体代码如下:

    #encoding=utf-8

    class ListNode(object):

        def __init__(self, x):

            self.val = x

            self.next = None

            self.root = None

    #添加链表节点函数

        def addNode(self, val):

            if self.root==None:

                self.root= ListNode(x=val)

                return self.root

            else:

          # 有头结点,则需要遍历到尾部节点,进行链表增加操作

                cursor = self.root

                while cursor.next!= None:

                    cursor = cursor.next

                cursor.next = ListNode(x=val)

                return self.root

    #下面就是题目具体解决过程 

    class Solution(object):

        def mergeTwoLists(self, l1, l2):

            """

            :type l1: ListNode

            :type l2: ListNode

            :rtype: ListNode

            """

            head=ListNode(0)

            cur=head

            

            while(l1!=None and l2!=None):

                if l1.val<l2.val:

                    cur.next=l1

                    l1=l1.next

                else:

                    cur.next=l2

                    l2=l2.next

                #cur.next.next=None

                cur=cur.next

            if l1!=None:

                cur.next=l1

            else:

                cur.next=l2

            return head.next

    #下面也是leetcode省略部分,实例化两个链表。添加节点,进行融合操作 

    a=ListNode(1)

    b=ListNode(1)

    print a.addNode(3).addNode(4)

    print b.addNode(2).addNode(4)

    c=Solution()

    print c.mergeTwoLists(a,b)

  • 相关阅读:
    机器学习---算法---K-近邻算法
    机器学习---算法---逻辑回归
    进程线程---简单解释
    【codecs】音视频编解码开源项目大汇总
    【life】选择程序员,就是选择一种生活
    【PE】逆向工程(反编译)
    【OpenSource】开源管理平台BlackDuck简介
    【Analysis】开源工程Binwalk:固件分析利器
    【Tools/VS】VS2010 代码块快速折叠快捷键
    【Audio】开源音频库G711和MP3Dec网址
  • 原文地址:https://www.cnblogs.com/garvicker/p/9044330.html
Copyright © 2020-2023  润新知