问题:
解题思路:
- 可以把节点数据提取出来存在列表里然后去算,当然,喜提时间爆表
- 还是老老实实在走节点的过程中就加然后建立链表
- 注意进位的设置,卡我十分钟的点在于q = self.reverse(q)我忘了让指针回来了。。。
- 进位的筛选也很重要
- 最后返回一下链表的反转
- 当然逻辑并不复杂,看一遍代码就知道怎么回事了
# def __init__(self, x):
# self.val = x
# self.next = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param head1 ListNode类
# @param head2 ListNode类
# @return ListNode类
#
class Solution:
def addInList(self , head1: ListNode, head2: ListNode) -> ListNode:
# write code here
if not head1 or not head2:
return
r = ListNode(0)
pre = r
q = head1
p = head2
q = self.reverse(q)
p = self.reverse(p)
temp = 0
while p or q:
jw = temp
if q != None:
jw += q.val
q = q.next
if p != None:
jw += p.val
p = p.next
print(jw)
temp = jw // 10
r.next = ListNode(jw%10)
r = r.next
if temp > 0:
r.next = ListNode(temp)
return self.reverse(pre.next)
def reverse(self, head):
q = head
p = None
while q:
temp = q.next
q.next = p
p = q
q = temp
return p