可以直接用栈去做就行,逆序想到栈的做法

然后算完一个就直接赋值给答案数组

 我用的是常见

public ListNode addTwoNumbers(ListNode l1, ListNode l2) {

        int sizeA=0;
int sizeB=0; ListNode start=l1;
ListNode r1=l1;
ListNode r2=l2;
while (start!=null){
r1=start;
start=start.next;
sizeA++;
} start=l2;
while (start!=null){
r2=start;
start=start.next;
sizeB++;
} // 逆转
reverse(l1, 0);
reverse(l2, 0); int add = 0;
//把长的放到r1
if (sizeA<sizeB){
ListNode t=r1;
r1=r2;
r2=t;
} start=r1;
while (r1 != null ) { int a = r1.val;
int b = r2 == null ? 0 : r2.val; // 全都放到r1上面
r1.val = (a + b + add) % 10;
add = (a + b + add) / 10;
r1=r1.next;
if (r2!=null){
r2=r2.next;
}
}
//返回头节点
// 对start逆转
ListNode[] reverse = reverse(start, 0);
if (add!=0){
ListNode temp = new ListNode(add);
temp.next=reverse[1];
return temp;
} return reverse[1]; } /**
* 返回2个
* 0 下一个
* 1 尾巴
* @param root
* @param sum
* @return
*/
public ListNode[] reverse(ListNode root, int sum) { if (root == null) {
return null;
}
sum++;
ListNode[] res = reverse(root.next, sum);
ListNode next=null;
if (res!=null){
next=res[0];
}
if (next != null) {
root.next=null;
next.next = root; //返回尾巴
return new ListNode[]{root,res[1]};
} else {
return new ListNode[]{root,root};
} }

的做法,将链表进行逆转,适合大部分情况

每日一题 力扣 445 https://leetcode.cn/problems/add-two-numbers-ii/的更多相关文章

  1. LeetCode 题解之Add Two Numbers II

    1.题目描述 2.分析 首先将链表翻转,然后做加法. 最后将结果链表翻转. 3.代码 ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { Lis ...

  2. [LeetCode] 445. Add Two Numbers II 两个数字相加之二

    You are given two linked lists representing two non-negative numbers. The most significant digit com ...

  3. LeetCode 445. 两数相加 II(Add Two Numbers II)

    445. 两数相加 II 445. Add Two Numbers II 题目描述 给定两个非空链表来代表两个非负整数.数字最高位位于链表开始位置.它们的每个节点只存储单个数字.将这两数相加会返回一个 ...

  4. 【LeetCode】445. Add Two Numbers II 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 先求和再构成列表 使用栈保存节点数字 类似题目 日期 ...

  5. 445. Add Two Numbers II - LeetCode

    Question 445. Add Two Numbers II Solution 题目大意:两个列表相加 思路:构造两个栈,两个列表的数依次入栈,再出栈的时候计算其和作为返回链表的一个节点 Java ...

  6. LeetCode Add Two Numbers II

    原题链接在这里:https://leetcode.com/problems/add-two-numbers-ii/ 题目: You are given two linked lists represe ...

  7. leetcode@ [2/43] Add Two Numbers / Multiply Strings(大整数运算)

    https://leetcode.com/problems/multiply-strings/ Given two numbers represented as strings, return mul ...

  8. 445 Add Two Numbers II 两数相加 II

    给定两个非空链表来代表两个非负整数.数字最高位位于链表开始位置.它们的每个节点只存储单个数字.将这两数相加会返回一个新的链表.你可以假设除了数字 0 之外,这两个数字都不会以零开头.进阶:如果输入链表 ...

  9. 刷题-力扣-剑指 Offer 42. 连续子数组的最大和

    剑指 Offer 42. 连续子数组的最大和 题目链接 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/lian-xu-zi-shu-zu-de ...

  10. 刷题-力扣-剑指 Offer II 055. 二叉搜索树迭代器

    剑指 Offer II 055. 二叉搜索树迭代器 题目链接 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/kTOapQ 著作权归领扣网络所有 ...

随机推荐

  1. LeeCode哈希问题(一)

    LeeCode 242: 有效的字母异位词 题目描述: 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词.若 s 和 t 中每个字符出现的次数都相同,则称互为字母异位词. ...

  2. 《花雕学AI》17:关注提示工程—本世纪最重要的技能可能就是与AI人工智能对话

    本文目录与主要结构 引言:介绍提示工程的概念和背景,说明为什么它是本世纪最重要的技能之一. 正文: 一.提示工程的基本原理和方法:介绍什么是提示.如何设计和优化提示.如何使用提示与语言模型进行交互. ...

  3. 【SSM项目】尚筹网(二)基于Servlet3.0项目搭建:日志系统以及声明式事务

    1 日志系统 常见的日志系统实现log4j.JUL(jdk自带).log4j2.logback(和SLF4J同一个作者,能够天然衔接),这些实现就类似于java的接口实现,而SLF4J就类似于java ...

  4. 2021年蓝桥杯python组真题-直线(细节+分析+代码)

    题目 : 代码: #直线 M=[[x,y] for x in range(20) for y in range(21)] #创建二维列表:代表xy坐标系 d=set() #创建集合属性的容器:因为集合 ...

  5. Python 使用列表一部分(切片)

    使用列表的一部分(切片) 处理列表的部分元素 切片 指定第一个元素的索引和最后一个元素索引加1 列表名[索引:索引+1] 索引加1:列表中第索引个元素 (左包括右不包括) 未指定索引 列表名[:] 提 ...

  6. 关于python中的OSError报错问题

    Traceback (most recent call last):  File "main.py", line 1, in <module>    from trai ...

  7. 2023-04-27:用go语言重写ffmpeg的remuxing.c示例。

    2023-04-27:用go语言重写ffmpeg的remuxing.c示例. 答案2023-04-27: ffmpeg的remuxing.c是一个用于将多媒体文件从一种容器格式转换为另一种容器格式的命 ...

  8. 2020-11-30:java中,卡表和记忆集的区别?

    福哥答案2020-12-04:[答案来自此链接:](http://bbs.xiangxueketang.cn/question/530)这两个都是G1收集器中的概念记忆集,RemeberSet,用来记 ...

  9. 2020-01-25:redis中,哨兵如何选举?

    福哥答案2020-01-25: [答案1:](https://bbs.csdn.net/topics/398982967)redis-sentinel故障转移的流程:1.当多个sentinel发现并确 ...

  10. Prompt工程师指南[从基础到进阶篇]:用于开发和优化提示,以有效地使用语言模型(LMs)进行各种应用和研究主题

    Prompt工程师指南[从基础到进阶篇]:用于开发和优化提示,以有效地使用语言模型(LMs)进行各种应用和研究主题 Prompt工程是一种相对较新的学科,用于开发和优化提示,以有效地使用语言模型(LM ...