当前位置: 首页 > news >正文

LeetCode刷题第2题

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。

请你将两个数相加,并以相同形式返回一个表示和的链表。

你可以假设除了数字 0 之外,这两个数都不会以 0 开头。

其本质即为两个数字逆着相加,第一个数字为个位,第二个数字为十位,依次类推

//以传入[1,2,3]和[5,8,9]为例
public class Solution {public ListNode AddTwoNumbers(ListNode l1, ListNode l2) {
//进行节点初始化ListNode head = null,tail = null;
//carry为进位数值int carry = 0;
//如果传入链表不为空,则进行相加循环while(l1 !=null || l2 != null){
//如果传入链表不为空,则获取首个(当前循环中的“个位”)
//第一次为n1 = 1,n2 = 5
//第二次为n1 = 2,n2 = 8
//第三次位n1 = 3,n2 = 9int n1 = l1!= null ? l1.val :0;int n2 = l2 != null ? l2.val :0;
//求当前两个首节点的和,且加入进位
//第一次为1+5 = 6
//第二次为2+8 = 10
//第三次位3+9+1 = 13int sum = n1 + n2 +carry;
//head首次进入,将首节点和末节点传入第一次sum取余,且指向同一个对象,则后面对tail做修改,head也会变
//此时head为[6],tail为[6]if(head == null){head = tail = new ListNode(sum %10);}
//第二次之后进入elseelse {
//第二次,此处tail为[6,0],head为[6,0]
//第三次,此处tail为[0,3],head为[6,0,3]tail.next = new ListNode(sum%10);
//第二次,此处tail为[0],head为[6,0]
//第三次,此处tail为[3],head为[6,0,3]tail = tail.next;}
//对sum做对10的除法,获得十位数字
//第二次为1
//第三次为1carry = sum/10;
//如果此时传入的l1或l2还有数值,则去除前一个节点,而后进入循环if(l1 != null){l1 = l1.next;}if(l2 != null){l2 = l2.next;}}
//循环结束后,如果结果超过本来的数组长度,则加上一位
//即在tail后加入最大的一位,数组为最后一次sum对10取余if(carry >0){
//这里为什么不是head.next
//是因为,head此时为头指针,指向6,头指针的后一个为[0,3],如果修改,则变为[6,1]
//而改tail,head则变为[6,0,3,1]tail.next = new ListNode(carry);}return head;}
}

http://www.lryc.cn/news/361981.html

相关文章:

  • mysql执行拼接的sql语句
  • 使用 pm2 或 screen 等工具来管理和后台运行你的 Node.js 应用
  • leetcode4 寻找两个正序数组的中位数
  • 水库大坝安全监测系统建设方案
  • 单片机的内存映射和重映射
  • 详解和实现数据表格中的行数据合并功能
  • 深度学习-05-反向传播理论知识
  • 黑马程序员——Spring框架——day04——SpringMVC基础
  • SpaceX间接「颠覆」了手机?星链如何直连手机通信?
  • 初识C++ · 模拟实现stack和Queue
  • MFC工控项目实例之一主菜单制作
  • JVMの堆、栈内存存储
  • 二叉树—堆(C语言实现)
  • 儿童有声挂图的芯片AD156—云信通讯
  • AI推介-多模态视觉语言模型VLMs论文速览(arXiv方向):2024.04.25-2024.05.01
  • gdb调试常见指令
  • 二进制安装mysql8.1
  • 前端工程化工具系列(六)—— VS Code(v1.89.1):强大的代码编辑器
  • 重学java 59.Properties属性集集合嵌套集合下总结
  • Kafka系列之高频面试题
  • SIP通话分析
  • 【SVG 生成系列论文(九)】如何通过文本生成 svg logo?IconShop 模型推理代码详解
  • 有哪些兼职软件一天能赚几十元?盘点十个能长期做下去的挣钱软件
  • ubuntu 22.04配置静态ip
  • C++ 使用 nlohmann/json 库
  • 【Java面试】六、Spring框架相关
  • 【GIC400】——PLIC,NVIC 和 GIC 中断对比
  • 17.Redis之主从复制
  • 计算机类专业应该怎么选学校和方向?优先选这些!
  • Amazon云计算AWS(二)