题解 | 链表相加(二)

链表相加(二)

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 inverse(self, head):
        pre = None
        cur = head
        while cur:
            tmp = cur.next
            cur.next = pre
            pre = cur
            cur = tmp
        return pre
            
    def addInList(self , head1: ListNode, head2: ListNode) -> ListNode:
        carry = 0
        h1 = self.inverse(head1)
        h2 = self.inverse(head2)
        add = ListNode(0)
        cur = add
        while h1 or h2 or carry:
            s = carry
            if h1: 
                s+=h1.val
                h1 = h1.next
            if h2:
                s+=h2.val
                h2 = h2.next
            carry, v = divmod(s, 10)
            cur.next = ListNode(v)
            cur = cur.next
        return self.inverse(add.next)

    

全部评论

相关推荐

青春运维少年不会梦到...:实习大王
点赞 评论 收藏
分享
给个offer灞:校友 是不是金die
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务