Leetcode 445. 两数相加 II ----python

2024-08-28 05:08
文章标签 python leetcode 相加 ii 445

本文主要是介绍Leetcode 445. 两数相加 II ----python,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 题目描述

给定两个非空链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储单个数字。将这两数相加会返回一个新的链表。

你可以假设除了数字 0 之外,这两个数字都不会以零开头。
示例:
输入: (7 -> 2 -> 4 -> 3) + (5 -> 6 -> 4)
输出: 7 -> 8 -> 0 -> 7

2. 解题思路

此题若不逆置初始链表,可以用栈来存储链表的值,然后相加,再把相加后的值存在新链表中。
步骤:
(1)用两个栈(stack1,stack2)分别存下两个链表的值
(2)从两个栈中取出元素,相加,相加后放在新的栈(stack3)中
(3)把新栈里的元素放入链表

3.代码实现

class Solution:def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:stack1 = []stack2 = []stack3 = []# 将两链表的元素分别入栈while(l1):stack1.append(l1.val)l1 = l1.nextwhile(l2):stack2.append(l2.val)l2 = l2.nextlend = 0# 将两链表的元素相加后,入栈while(stack1 and stack2):temp = stack1.pop(len(stack1)-1) + stack2.pop(len(stack2)-1)+ lendif(temp < 10):stack3.append(temp)lend = 0else:stack3.append(int(str(temp)[1]))lend = 1while(stack1 == [] and  stack2 != []):temp = stack2.pop(len(stack2)-1)+ lendif(temp < 10):stack3.append(temp)lend = 0else:stack3.append(int(str(temp)[1]))lend = 1while(stack2 == [] and  stack1 != []):temp = stack1.pop(len(stack1)-1) + lendif(temp < 10):stack3.append(temp)lend = 0else:stack3.append(int(str(temp)[1]))lend = 1if(lend == 1):stack3.append(1)#将栈的值放入链表dummy = ListNode(None)head = dummyfor i in stack3[::-1]:node = ListNode(i)head.next = nodehead = head.nextreturn dummy.next

在这里插入图片描述

4. 测试用例和测试结果

测试用例

# Definition for singly-linked list.
class ListNode:def __init__(self, x):self.val = xself.next = Noneclass Solution:def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:stack1 = []stack2 = []stack3 = []# 将两链表的元素分别入栈while(l1):stack1.append(l1.val)l1 = l1.nextwhile(l2):stack2.append(l2.val)l2 = l2.nextlend = 0# 将两链表的元素相加后,入栈while(stack1 and stack2):temp = stack1.pop(len(stack1)-1) + stack2.pop(len(stack2)-1)+ lendif(temp < 10):stack3.append(temp)lend = 0else:stack3.append(int(str(temp)[1]))lend = 1while(stack1 == [] and  stack2 != []):temp = stack2.pop(len(stack2)-1)+ lendif(temp < 10):stack3.append(temp)lend = 0else:stack3.append(int(str(temp)[1]))lend = 1while(stack2 == [] and  stack1 != []):temp = stack1.pop(len(stack1)-1) + lendif(temp < 10):stack3.append(temp)lend = 0else:stack3.append(int(str(temp)[1]))lend = 1if(lend == 1):stack3.append(1)#将栈的值放入链表(新开辟的链表空间)dummy = ListNode(None)head = dummyfor i in stack3[::-1]:node = ListNode(i)head.next = nodehead = head.nextreturn dummy.next#打印链表操作def printLink(self,root):r = rootwhile(r):print(r.val)r = r.nextroot1 = ListNode(9)
n2 = ListNode(4)
n3 = ListNode(6)
root1.next = n2
n2.next = n3root2 = ListNode(0)
# r2 = ListNode(5)
# r3 = ListNode(7)
# root2.next = r2
# r2.next = r3s = Solution()
result= s.addTwoNumbers(root1,root2)
s.printLink(result)

测试结果:

9
4
6

这篇关于Leetcode 445. 两数相加 II ----python的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1113814

相关文章

哈希leetcode-1

目录 1前言 2.例题  2.1两数之和 2.2判断是否互为字符重排 2.3存在重复元素1 2.4存在重复元素2 2.5字母异位词分组 1前言 哈希表主要是适合于快速查找某个元素(O(1)) 当我们要频繁的查找某个元素,第一哈希表O(1),第二,二分O(log n) 一般可以分为语言自带的容器哈希和用数组模拟的简易哈希。 最简单的比如数组模拟字符存储,只要开26个c

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

nudepy,一个有趣的 Python 库!

更多资料获取 📚 个人网站:ipengtao.com 大家好,今天为大家分享一个有趣的 Python 库 - nudepy。 Github地址:https://github.com/hhatto/nude.py 在图像处理和计算机视觉应用中,检测图像中的不适当内容(例如裸露图像)是一个重要的任务。nudepy 是一个基于 Python 的库,专门用于检测图像中的不适当内容。该

AI基础 L9 Local Search II 局部搜索

Local Beam search 对于当前的所有k个状态,生成它们的所有可能后继状态。 检查生成的后继状态中是否有任何状态是解决方案。 如果所有后继状态都不是解决方案,则从所有后继状态中选择k个最佳状态。 当达到预设的迭代次数或满足某个终止条件时,算法停止。 — Choose k successors randomly, biased towards good ones — Close

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip

leetcode-24Swap Nodes in Pairs

带头结点。 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val = x; }* }*/public class Solution {public ListNode swapPairs(L

leetcode-23Merge k Sorted Lists

带头结点。 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val = x; }* }*/public class Solution {public ListNode mergeKLists