Python怎么实现两数相加
发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,这篇文章主要讲解了"Python怎么实现两数相加",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Python怎么实现两数相加"吧!两数相加题目描述给出两
千家信息网最后更新 2025年11月11日Python怎么实现两数相加
这篇文章主要讲解了"Python怎么实现两数相加",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Python怎么实现两数相加"吧!
两数相加
题目描述
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。
如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。
您可以假设除了数字 0 之外,这两个数都不会以 0 开头。
输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
输出:7 -> 0 -> 8
原因:342 + 465 = 807
解题思路
其实这题比较简单,无非是两个链表之间同层级的数字相加,唯一要注意的就是如果相加之后数字大于10,需要往下一级+1,当前级数是个位的那个数字。基本也是一个循环可以解决的。再注意处理下,如果一个链表长度长于另一个链表时的边界处理,其余就没啥了。
JS版
/** * @param {ListNode} l1 * @param {ListNode} l2 * @return {ListNode} */const addTwoNumbers = (l1, l2) => { let l3 = null let cache = 0 let tens = 0 while (l1 || l2) { let total = 0 if (l1) { let l1Head = l1.val total += l1Head l1 = l1.next } if (l2) { let l2Head = l2.val total += l2Head l2 = l2.next } total += tens if (total >= 10) { total -= 10 tens = 1 } else { tens = 0 } let node = new ListNode(total) if (cache) { cache.next = node cache = node } else { l3 = node cache = l3 } } if (tens === 1) { cache.next = new ListNode(1) } return l3}TS版
class ListNode { val: number next: ListNode | any constructor(value: number) { this.val = value this.next = null }} /** * @param {ListNode} l1 * @param {ListNode} l2 * @return {ListNode} */const addTwoNumbers = (l1: ListNode, l2: ListNode) => { let l3: null | ListNode = null let cache: ListNode | null = null let tens: number = 0 while (l1 || l2) { let total: number = 0 if (l1) { let l1Head = l1.val total += l1Head l1 = l1.next } if (l2) { let l2Head = l2.val total += l2Head l2 = l2.next } total += tens if (total >= 10) { total -= 10 tens = 1 } else { tens = 0 } let node = new ListNode(total) if (cache) { cache.next = node cache = node } else { l3 = node cache = l3 } } if (tens === 1) { cache.next = new ListNode(1) } return l3}PY版
# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode: """ :type l1: ListNode :type l2: ListNode :rtype: ListNode """ l3 = None cache = 0 tens = 0 while l1 or l2: total = 0 if l1: l1Head = l1.val total = total + l1Head l1 = l1.next if l2: l1Head = l2.val total = total + l1Head l2 = l2.next total = total + tens if total >= 10: total = total - 10 tens = 1 else: tens = 0 node = ListNode(total) if cache: cache.next = node cache = node else: l3 = node cache = l3 if tens == 1: cache.next = ListNode(1) return l3
感谢各位的阅读,以上就是"Python怎么实现两数相加"的内容了,经过本文的学习后,相信大家对Python怎么实现两数相加这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
两个
数字
学习
内容
就是
思路
处理
存储
个位
之间
位数
原因
层级
开头
情况
整数
文章
方式
更多
知识
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
1.浪潮服务器 浪潮服务器
网络安全ppt免费模板大全
河南电力科技互联网部
计算机网络技术是怎么操作
手机数据库表
怎样在服务器中装模组在手机版里
广州荔支网络技术有限公司上市
软件开发的两大方法
软件开发都有什么文件
南昌软件开发的培训
网络安全防护工作包括哪些
安卓软件开发 赚钱
网络安全教育心得100
啥叫网络安全密钥
如何使用idea创建数据库
软件开发是商标哪个类别
黄河鲲鹏服务器怎么样
中国手游出海服务器
电脑软件开发工程师招聘
深圳二七网络技术有限公司
怎样在服务器中装模组在手机版里
中学生寒假网络安全教育
网瘾老人网络安全
连接服务器要不要无线网卡
正规网络安全建设找哪家
计算机软件开发周记
foxmail邮件服务器
硅谷服务器
网络引导服务器管理
黄河鲲鹏服务器怎么样