问题:
“给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头”
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/add-two-numbers
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
思路:用一个变量存储进位,链表遍历
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
result = ListNode(0)
t1 = l1
t2 = l2
t = result
s = 0
while t1 != None or t2 != None:
t.next = ListNode(s)
t = t.next
#print(t.val)
if t1 != None:
t.val = t.val + t1.val
t1 = t1.next
if t2 !=None:
t.val = t.val + t2.val
t2 = t2.next
s = int(t.val/10)
t.val = t.val%10
#print(s)
if s > 0:
t.next = ListNode(s)
t = t.next
return result.next
执行用时 :88 ms
内存消耗 :14 MB