题解 | 链表相加(二)

链表相加(二)

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 addInList(self , head1: ListNode, head2: ListNode) -> ListNode:
        # write code here
        reversed1 = self.reverseList(head1)
        reversed2 = self.reverseList(head2)

        dummy = ListNode(0)
        current = dummy
        carry = 0

        while reversed1 or reversed2 or carry:
            val1 = reversed1.val if reversed1 else 0
            val2 = reversed2.val if reversed2 else 0
            total = val1 + val2 + carry
            carry = total // 10
            current.next = ListNode(total % 10)
            current = current.next 

            if reversed1:
                reversed1 = reversed1.next
            if reversed2:
                reversed2 = reversed2.next

        result = self.reverseList(dummy.next)
        return result


    def reverseList(self, pHead):
        if not pHead:
            return None
        prev = None
        curr = pHead
        while curr:
            next_node = curr.next
            curr.next = prev
            prev = curr
            curr =next_node

        return prev

全部评论

相关推荐

程序员花海_:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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