给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。
你可以假设除了数字 0 之外,这两个数字都不会以零开头。
进阶:
如果输入链表不能修改该如何处理?换句话说,你不能对列表中的节点进行翻转。
示例:
输入:(7 -> 2 -> 4 -> 3) + (5 -> 6 -> 4)
输出:7 -> 8 -> 0 -> 7
# 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:
def int2linkList(num):
if num == 0:
return ListNode(0)
head = None
while num > 0:
cur = ListNode(num%10)
cur.next = head
head = cur
num = num // 10
return head
def linkList2int(node):
num = 0
while node is not None:
num = node.val + num * 10
node = node.next
return num
num1 = linkList2int(l1)
num2 = linkList2int(l2)
num = num1 + num2
return int2linkList(num)