链表相加
时间:2020-05-27 16:16:45
收藏:0
阅读:36
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。
如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。
输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
输出:7 -> 0 -> 8
原因:342 + 465 = 807
输出:7 -> 0 -> 8
原因:342 + 465 = 807
思路:针对这个链表的相加后,新建链表,将两个链表相加后的值,新链表纸箱该值,这里需要注意的是两个数相加后的进位!!在一开始我没考虑到,在看了参考了大佬的思路后,才发现自己代码的思路的问题。要继续学习加油!
# 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: p=ListNode(0) m=p carry=0 sum1=0 while carry>0 or l1 or l2: val1=l1.val if l1 else 0 val2=l2.val if l2 else 0 sum1=val1+val2+carry carry=sum1//10 val=sum1%10 m.next=ListNode(val) if l1: l1=l1.next if l2: l2=l2.next m=m.next return p.next
原文:https://www.cnblogs.com/zxixiu/p/12973372.html
评论(0)