才发现python还能写链表,之前都把它当作EXCEL用了,用了个寂寞。
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def addTwoNumbers(self, l1, l2):
p = ListNode()
out = ListNode(0)
l3 = p # 完整的链表
s = 0 # 进位标志符
flag = 0 # 排除这种情况[0] + [0] = [0]
while (l1.val != 0 or l1.next !=None) or (l2.val != 0 or l2.next !=None) or (s != 0) or flag==0:
flag = 1
result = ListNode((l1.val + l2.val + s) % 10) # 从个位开始,对应位相加, 作为一个节点
s = (l1.val + l2.val + s) // 10 # 判断是否有进位
p.next = result # 结果链表指向节点(向前位相加的结果)
p = result
if l1.next != None:
l1 = l1.next
else:
l1 = out # 不等长链表,短的在高位填充0
if l2.next != None:
l2 = l2.next
else:
l2 = out # 不等长链表,短的在高位填充0
return l3.next