回顾一下,链表:
445. Add Two Numbers II
这个题目,最开始就考虑反转链表,但是题目不允许,我采取了用 栈 把链表里的数取出来的做法。。
后面的做法和 add two numbers 1 差不多了
class ListNode(object):
def __init__(self, x):
self.val = x
self.next = None
#445. Add Two Numbers II
class Solution(object):
def addTwoNumbers(self, l1, l2):
"""
:type l1: ListNode
:type l2: ListNode
:rtype: ListNode
"""
stack1,stack2=[],[]
while l1:
stack1.append(l1.val)
l1=l1.next
while l2:
stack2.append(l2.val)
l2=l2.next
start=ListNode(0)
carry=0
while stack1 or stack2 or carry:
if stack1:
carry+=stack1.pop()
if stack2:
carry+=stack2.pop()
carry,val=divmod(carry,10)
newnode=ListNode(val)
newnode.next=start.next
start.next=newnode
return start.next
class Solution(object):
def addTwoNumbers(self, l1, l2):
carry = 0;
res = n = ListNode(0);
while l1 or l2 or carry:
if l1:
carry += l1.val
l1 = l1.next;
if l2:
carry += l2.val;
l2 = l2.next;
carry, val = divmod(carry, 10)
n.next = n = ListNode(val);
return res.next;
本文探讨了LeetCode上的445.AddTwoNumbersII题目,介绍了一种利用栈而非直接反转链表的方法来解决两个链表数值相加的问题。通过栈来逆序取出链表中的值,再进行逐位相加并处理进位,最终生成新的链表作为答案。
698

被折叠的 条评论
为什么被折叠?



