当前位置: 移动技术网 > IT编程>脚本编程>Python > Leetcode代码补全——链表

Leetcode代码补全——链表

2018年05月17日  | 移动技术网IT编程  | 我要评论

梁静茹新歌,崇左汽车站,619观察网619

通过补全代码可以更深刻的体会到,链表就是一个存储方式,通过一单元的存储指向下一单元,而查看单元内容通过头部开始的指针依次遍历。这是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)

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网