NC40 两个链表生成相加链表

该博客介绍了如何使用Python处理链表表示的整数,并实现两个链表表示的整数相加的功能。通过使用栈来辅助计算,将链表中的节点值逐个相加并处理进位问题,最终生成新的结果链表。示例展示了对于链表9->3->7和6->3,相加得到1->0->0->0的链表。博客内容涉及链表操作和进位计算,适合对数据结构和算法感兴趣的读者。
摘要由CSDN通过智能技术生成

描述

假设链表中每一个节点的值都在 0 - 9 之间,那么链表整体就可以代表一个整数。

给定两个这种链表,请生成代表两个整数相加值的结果链表。

例如:链表 1 为 9->3->7,链表 2 为 6->3,最后生成新的结果链表为 1->0->0->0。

示例1

输入:

[9,3,7],[6,3]

返回值:

{1,0,0,0}

备注:

1≤n,m≤1061 \leq n, m \leq 10^61≤n,m≤106
0≤ai,bi≤90 \leq a_i, b_i \leq 90≤ai​,bi​≤9

python的整除是//,/会出小数

# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

#
# 
# @param head1 ListNode类 
# @param head2 ListNode类 
# @return ListNode类
#
def inStack(stack: list, x: int):
    stack.append(x)
    
def outStack(stack: list):
    if len(stack) > 0:
        return stack.pop(-1)
    else: 
        return 0

class Solution:
    def addInList(self , head1 , head2 ):
        stack1, stack2, summ = [], [], []
        tmp = 0
        while head1 != None:
            inStack(stack1, head1.val)
            head1 = head1.next
        while head2 != None:
            inStack(stack2, head2.val)
            head2 = head2.next
        while len(stack1) > 0 or len(stack2) > 0:
            x1 = outStack(stack1)
            x2 = outStack(stack2)
            x = x1 + x2 + tmp
            tmp = x // 10
            x = x % 10
            inStack(summ, x)
        if tmp > 0:
            inStack(summ, tmp)
        head = ListNode(outStack(summ))
        result = head
        
        while len(summ) > 0:
            head.next = ListNode(outStack(summ))
            head = head.next
        return result
        # write code here

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值