zoukankan      html  css  js  c++  java
  • 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)

  • 相关阅读:
    【JVM】模板解释器--如何根据字节码生成汇编码?
    你会swap吗,按值传递还是按引用?
    你了解实时计算吗?
    Hadoop的Server及其线程模型分析
    机会
    storm如何分配任务和负载均衡?
    storm基础框架分析
    storm如何保证at least once语义?
    学习笔记:The Log(我所读过的最好的一篇分布式技术文章)
    学习笔记:Twitter核心数据类库团队的Hadoop优化经验
  • 原文地址:https://www.cnblogs.com/garvicker/p/9044330.html
Copyright © 2011-2022 走看看