LeetCode 第二天后续(两数相加 python3)
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None class Solution:
def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
"""
type l1:ListNode
type l2:ListNode
rtype: ListNode
"""
# 如果有一个链表为空,返回另外一个
if l1 is None:
return l2
if l2 is None:
return l1
# tmp是暂存(temporal)
tmp = ListNode(0) #引用ListNode类定义了一个链表节点并赋值给tmp
# res是重置(reset)
res = tmp #赋值
# flag标识
flag = 0
while l1 or l2: #l1或l2不为0就继续执行
tmp_sum = 0 #链表节点值得和为0
if l1: # 如果l1不为空,就把 l1 某个节点值的和赋给tmp_sum
tmp_sum = l1.val
l1 = l1.next
if l2: # 如果l2不为空,把 l2中和 l1 相对应的节点值加到tmp_sum
tmp_sum += l2.val
l2 = l2.next # 指向下一个节点,为下一次加和做准备
tmp_res = ((tmp_sum + flag)%10) #个位的数
flag = ((tmp_sum + flag)//10) #进位的数
res.next = ListNode(tmp_res)
res = res.next # res 后移
if flag: # 如果flag不为0,就是对应位置相加后有进位
res.next = ListNode(1)
res = tmp.next # 赋值
del tmp #删除tmp变量
return res #返回链表
参考博客地址 https://blog.csdn.net/zhangyu4863/article/details/80669819
鄙人心里有一些疑问,res.next = ListNode(tmp_res)啥意思 万望各路大神解答 我自己后续也会好好研究
LeetCode 第二天后续(两数相加 python3)的更多相关文章
- 【LeetCode题解】2_两数相加
目录 [LeetCode题解]2_两数相加 描述 方法一:小学数学 思路 Java 代码(非递归写法) Java 代码(递归写法) Python 代码(非递归写法) [LeetCode题解]2_两数相 ...
- Leetcode(2)两数相加
Leetcode(2)两数相加 [题目表述]: 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两 ...
- Leetcode(二)两数相加
两数相加 题目描述 给出两个非空的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相加起来,则会返回一个新的链 ...
- leetcode刷题2:两数相加add_two_numbers
题目:两数相加 (难度:中等) 给定两个非空链表来表示两个非负整数.位数按照逆序方式存储,它们的每个节点只存储单个数字. 将两数相加返回一个新的链表. 你可以假设除了数字 0 之外,这两个数字都不会以 ...
- LeetCode 0、《两数相加》
一.给定两个非空链表来表示两个非负整数.位数按照逆序方式存储,它们的每个节点只存储单个数字.将两数相加返回一个新的链表. 你可以假设除了数字 0 之外,这两个数字都不会以零开头. 示例: 输入:(2 ...
- LeetCode题解002:两数相加
两数相加 题目 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字 如果,我们将这两个数相加起来,则会返回一个新的链表 ...
- Leetcode(2)-两数相加(包含链表操作的注意事项)
给定两个非空链表来表示两个非负整数.位数按照逆序方式存储,它们的每个节点只存储单个数字.将两数相加返回一个新的链表. 你可以假设除了数字 0 之外,这两个数字都不会以零开头. 示例: 输入:(2 -& ...
- Leecode第二题:两数相加
Leecode2 先看题目 : 给你两个 非空 的链表,表示两个非负的整数.它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字. 请你将两个数相加,并以相同形式返回一个表示和的 ...
- leecode第二题(两数相加)
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode ...
随机推荐
- UnSafe类中的一些重要方法
UnSafe类中的一些重要方法 JDK中的rt.jar保重Unsafe类中提供了硬件级别的原子性操作,Unsafe类中的方法都是navtice方法,他们使用JNI的方式访问C++实现库,下面我们来了解 ...
- 【ocp-12c】最新Oracle OCP-071考试题库(45题)
45.(9-16)choose the best answer: View the Exhibit and examine the data in the EMPLOYEES table. You w ...
- “全栈2019”Java第九十三章:内部类应用场景(迭代器设计模式)
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- 《快学Scala》第二章 控制结构和函数
- [CSS3] 二级下拉导航
<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="utf-8& ...
- Utils工具方法集插件详解
var Utils = function(){}; Utils.text = { stripTags: function (val) { return val.replace(/<\/?[^&g ...
- Linux 中排除掉筛选的文件
以下命令以网站目录www为例做介绍,有时候更新网站的时候需要保留比如图片目录,或者其他目录就需要这样的操作 实例一: 删除文件夹内所有文件只保留一个文件命令 [root@linuxzgf www]# ...
- 处理序列的几个小技巧:保持原序去重,命名切片以及Counter类
一. 去重并保持原来元素的顺序 def dedupe(items): h = [] for item in items: if item not in h: h.append(item) return ...
- JAVA编程思想第一章——对象导论
- #.NET# DataGrid显示大量数据——DataGridView虚模式
要解决的目标:如何让 Datagridview 快速平滑显示大量数据 通常,Winform 下的表格控件是很"低效"的,如 DataGrid 和 DataGridView.造成低效 ...