题解 | 链表相加(二)

链表相加(二)

https://www.nowcoder.com/practice/c56f6c70fb3f4849bc56e33ff2a50b6b

# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param head1 ListNode类 
# @param head2 ListNode类 
# @return ListNode类
#
class Solution:
    def reverselist(self,Head:ListNode):
        if Head == None:
            return None
        cur = Head
        pre = None
        while cur:
            tmp = cur.next
            cur.next = pre
            pre = cur
            cur = tmp
        return pre
    def addInList(self , head1: ListNode, head2: ListNode) -> ListNode:
        # write code here
        # 是先反转后再相加

        if head1 == None:
            return head2
        if head2 == None:
            return head1
        head1 = self.reverselist(head1)
        head2 = self.reverselist(head2)
        res = ListNode(-1)
        head = res
        carry = 0 #进位
        while head1 != None or head2 !=None or carry !=0:
            val1=0 if head1 == None else head1.val
            val2 = 0 if head2 ==None else head2.val
            tmp = val1+val2+carry
            carry = tmp//10
            tmp %=10
            head.next = ListNode(tmp)
            head = head.next
            if head1:
                head1 = head1.next
            if head2:
                head2 = head2.next
        return self.reverselist(res.next)

全部评论

相关推荐

点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务