LeetCode题解-两数相加python实现

leetcode两数相加 链表

  • 一、引言
    • 1.两数相加-Python实现
    • 2. 实验结果

一、引言

在leetcode做算法题时,并不需要写输入输出,但是在实际线上笔试的时候,需要自己调试。

本文以链表为例,讲解链表的插入以及链表的输出,还有链表的定义。

1.两数相加-Python实现

链表-两数相加-python语言实现
完整代码如下所示,请参考:

import sys
#定义节点
class ListNode:
    def __init__(self, x):
        self.value = x
        self.next = None
#定义链表
class LinkList:
    def __init__(self):
        self.head=None
 
    def initList(self, data):
        # 创建头结点
        self.head = ListNode(data[0])
        r=self.head
        p = self.head
        # 逐个为 data 内的数据创建结点, 建立链表
        for i in data[1:]:
            node = ListNode(i)
            p.next = node
            p = p.next
        return r
    def printlist(self,head):
        if head == None: return
        node = head
        while node != None:
            print(node.value,end=' ')
            node = node.next
class Solution:
    def twosum(self,l1,l2):
        temp=ListNode(0)
        l3=temp
        a=0
        while l1!=None or l2!=None or a!=0:
            if l1!=None:
                a+=l1.value
                l1=l1.next
            if l2!=None:
                a+=l2.value
                l2=l2.next
            temp.next=ListNode(a%10)
            temp=temp.next
            a=a//10
        return l3.next
 
if __name__ == "__main__":
    line1 = sys.stdin.readline().strip()
    l3=list(map(int, line1.split()))
    line2 = sys.stdin.readline().strip()
    l4 = list(map(int, line2.split()))
    b=LinkList()
    l1=b.initList(l3)
    l2=b.initList(l4)
    a=Solution()
    l5=a.twosum(l1,l2)
    b.printlist(l5)

2. 实验结果

在这里插入图片描述

欢迎点赞,关注,谢谢~~~

您的支持,是我不断创作的最大动力~

欢迎点赞关注留言交流~

深度学习,乐此不疲~

你可能感兴趣的:(数据结构与算法分析)