python两个数相加时_两数相加 leetcode Python

给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。

你可以假设除了数字 0 之外,这两个数字都不会以零开头。

示例:

输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)

输出:7 -> 0 -> 8

原因:342 + 465 = 807

# Definition for singly-linked list.

# class ListNode:

# def __init__(self, x):

# self.val = x

# self.next = None

class Solution:

def addTwoNumbers(self, l1, l2):

"""

:type l1: ListNode

:type l2: ListNode

:rtype: ListNode

"""

carry = 0

isFirst = True

currentNode = None

head = None

while(l1 or l2 or carry != 0):

val1 = 0

val2 = 0

if l1:

val1 = l1.val

l1 = l1.next

if l2:

val2 = l2.val

l2 = l2.next

sum = val1 + val2 + carry

if sum >= 10:

carry = 1

sum = sum % 10

else:

carry = 0

node = ListNode(sum)

if isFirst:

currentNode = node

head = currentNode

isFirst = False

else:

currentNode.next = node

currentNode = currentNode.next

return head


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部