LeetCode 2:《Add Two Numbers》

 编程思路:遍历两个两个链表,获得存储的整数值,进行加法运算,然后将结果存入链表中,返回链表的头。

import math

# Definition for singly-linked list.
class ListNode:
    def __init__(self, x):
        self.val = x
        self.next = None

class Solution:
    # @return a ListNode
    def addTwoNumbers(self, l1, l2):
        # 传入的是两个链表的头
        # 遍历获取各个节点,计算存储的整数值
        num_1, num_2 = 0, 0
        p, q = l1, l2
        i, j = 0, 0
        while p != None:
            num_1 = num_1 + p.val*math.pow(10, i)
            p = p.next
            i = i + 1
        while q != None:
            num_2 = num_2 + q.val*math.pow(10, j)
            q = q.next
            j = j + 1
        num_3 = int(num_1 + num_2)
        # 整数转字符串,便于截取各个位上的数
        num_s = str(num_3)
        # 设置链表头,以及前一个节点
        head = None
        previous = None
        for i in range(len(num_s)):
            value = int(num_s[len(num_s)-i-1:len(num_s)-i])
            node = ListNode(value)
            if i == 0:
                head = node
            else:
                previous.next = node
            previous = node 
        return head


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值