Python闯LeetCode--第2题:两数相加

Problem: 2. 两数相加

文章目录

思路

看到这一题,第一反应是分别遍历两个链表,用列表来存储数,先把两个数的值拿到,转为具体数之后进行相加,再把两数相加值转为列表,再转为链表返回结果。是比较常规和直接的做法。

解题方法

1、用两个列表来存储两个值

2、两个列表拿到后,转为字符串

3、再把字符串放到列表中

4、列表每次弹出最后一个值,加入新的链表节点。直到列表为空。(记得要做字符串和整数的类型转换)

复杂度

时间复杂度:

O ( n ) O(n) O(n)

空间复杂度:

O ( n ) O(n) O(n)

Code

python 复制代码
# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def addTwoNumbers(self, l1: Optional[ListNode], l2: Optional[ListNode]) -> Optional[ListNode]:
        num1, num2 = [], []
        while l1:
            num1.insert(0, l1.val)
            l1 = l1.next
        while l2:
            num2.insert(0, l2.val)
            l2 = l2.next
        num1 = int("".join(map(str, num1)))
        num2 = int("".join(map(str, num2)))
        sum_num = str(num1 + num2)
        sum_list = []
        for char in sum_num:
            sum_list.append(char)
        head = p = ListNode(None)
        while len(sum_list)>0:
            p.next = ListNode(int(sum_list.pop(-1)))
            p = p.next
        return head.next
相关推荐
伞伞悦读36 分钟前
【第70期】Adam二阶矩不是方差:偏差校正、动量与AdamW完整实验
python
FRing031 小时前
JavaScript入门到精通三十二(深拷贝、浅拷贝、递归函数)
开发语言·前端·javascript
外收内放1 小时前
Python基础语法练习题(73)
java·前端·python
锋行天下1 小时前
Langgraph HITL 中断运行,用户输入后输出打字效果
人工智能·python
时早玖沐2 小时前
给 AstrBot 写一个天气推送插件:12 次提交、6 个坑
python·开源·ai编程
触底反弹2 小时前
🚀 FastAPI 五大重难点深度剖析:从 500 报错到彻底搞懂 Depends、Pydantic 与 SQLAlchemy
python·fastapi
cpolar技术支持2 小时前
网关加 gzip,同时开启 chunked,下载回来的包解不开:把两层编码的解压顺序与长度核对做成只读页
python·http·网络编程·socket·内网穿透
小嘉丶学长2 小时前
Day14 · 字典与集合
java·开发语言·网络·python·学习·1024程序员节
迪菲赫尔曼2 小时前
【基础篇 11】把官方源码放到服务器:版本、解压层级和安装位置,一次弄清楚
运维·服务器·开发语言·人工智能·python·yolo·目标检测
用户8356290780512 小时前
Python 调整 Excel 工作表显示设置
后端·python