您的位置:首页 > 其它

leetcode 两数相加

2019-06-10 10:01 316 查看

给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。

如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/add-two-numbers


思路:主要是判断是否有进位,有进位就两数之和减10放入新的位置,但 要记录进位值。

注意,每个节点存放一位数字,所以两数之和绝不会超过19.

[code]class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
flag=0
ans=pre=ListNode(0)
while (l1!=None or l2!=None):
if l1:
flag+=l1.val
l1=l1.next
if l2:
flag+=l2.val
l2=l2.next
if flag>9:
val=flag-10
flag=1
else:
val=flag
flag=0
pre.next=ListNode(val)
pre=pre.next
if flag==1:
pre.next=ListNode(1)
#ans=pre
return ans.next

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: