栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

leedcode 两数相加问题在pycharm上的实现代码

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

leedcode 两数相加问题在pycharm上的实现代码

leedcode 两数相加问题在pycharm上的实现代码

#目标用python创建一个单链表,leetcode:两数相加

#第一步:定义节点
class Node(object):
    def __init__(self, data):
        self.data = data
        self.next = None



class SinglelinkedList(object):
    def __init__(self):
        self.head = None

    def addFist(self, data):
        node = Node(data)
        node.next = self.head
        self.head = node

    def traversal(self):
        l = list()
        cur = self.head
        while cur is not None:
            l.append(cur.data)
            cur = cur.next
        print(l)

class Solution(object):
    def __init__(self):
        la = SinglelinkedList()
        lb = SinglelinkedList()


    def addTwoNumbers(self, la, lb):
        carry = 0
        start = node = Node(0)
        while la or lb:
            x = la.data if la else 0
            y = lb.data if lb else 0
            sum = x + y + carry
            node.next = Node(sum % 10)
            node = node.next
            carry = sum // 10

            if la:
                la = la.next
            if lb:
                lb = lb.next
        if carry:
            node.next = Node(carry)
        return start.next

#如何实例化单链表
if __name__ == '__main__':

    l1 = SinglelinkedList()
    l1.addFist(2)
    l1.addFist(1)
    l1.addFist(9)
    l1.traversal()
    a = l1.head

    l2 = SinglelinkedList()
    l2.addFist(9)
    l2.addFist(3)
    l2.addFist(9)
    l2.traversal()
    b = l2.head

    solution = Solution()
    l3 = SinglelinkedList()
    l3.head = solution.addTwoNumbers(a, b)
    l3.traversal()
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/309073.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号