两个链表生成相加链表

两个链表生成相加链表

题目在这里插入图片描述

思路

  1. 先将两个链表分别反转
  2. 从头部开始相加(注意进位及一个链表遍历完的情况)
  3. 再将相加后的链表反转
class ListNode:def __init__(self, x):self.val = xself.next = None#
# 
# @param head1 ListNode类 
# @param head2 ListNode类 
# @return ListNode类
#
def reverse(p):pre = ptail = Nonewhile p:pre = pre.nextp.next = tailtail = pp = prereturn tail
def one_list(p1,pr,add):while p1:r = p1.val + addif r >= 10:add = 1r = r - 10else:add = 0pr.next = ListNode(r)pr = pr.nextp1 = p1.nextif add:pr.next = ListNode(add)pr = pr.nextreturn prclass Solution:def addInList(self , head1 , head2 ):if not head1: return head2if not head2:return head1p1 = reverse(head1)p2 = reverse(head2)pr = ListNode(None)ph = pradd = 0while p1 and p2:r = p1.val + p2.val + addif r >= 10:add = 1r = r - 10else:add = 0pr.next = ListNode(r)pr = pr.nextp1 = p1.nextp2 = p2.nextif p1:pr = one_list(p1,pr,add)if p2:pr = one_list(p2,pr,add)p = ph.nextreturn reverse(p)


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部