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

2.单链表两数相加(java)

题目描述:

分析:

1.首先创建一个虚拟节点 ListNode dummy = new ListNode(-1);再创建一个节点来保存虚拟节点,因为使用虚拟节点来移动,如果不保存,最后就会丢失。保存虚拟节点:ListNode p=dummy;

2.进位标志:int carry=0; 

    接收两个单链表:ListNode head1=l1;  ListNode head2=l2;

3.用一个新值保存相加结果,新值初始为0:int newVal=0;

4. 循环:当head1不空或者head2不空或carry>1时:

         while(head1 !=null || head2 !=null || carray>0)

        这里对carry有要求是因为:加到最后一位时需要进位,所以只要carry>1就需要处理

        加和:newVal=head1.val+head2.val+carry

        节点移动:使用三目运算符:? 

                          非空:节点=节点.next    空:null

5.最后返回头节点:return p.next;

java代码如下:

class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {ListNode dummy=new ListNode(-1);ListNode p=dummy;ListNode head1=l1;ListNode head2=l2;int carry=0;int newVal=0;while(head1!=null || head2!=null || carry>0){int val1=head1!=null ? head1.val:0;int val2=head2!=null ? head2.val:0;newVal=val1+val2+carry;carry=newVal/10;newVal%=10;dummy.next=new ListNode(newVal);head1=head1!=null ? head1.next: null;head2=head2!=null ? head2.next: null;dummy=dummy.next;}return p.next;}
}

http://www.xdnf.cn/news/6914.html

相关文章:

  • 记录算法笔记(2025.5.17)验证二叉搜索树
  • 题单:表达式求值1
  • LVGL- Calendar 日历控件
  • [YOLO模型](4)YOLO V3的介绍
  • 基于STM32_HAL库的SPI通信并驱动W25Q64存储模块
  • RK3588 MNN CPU/Vulkan/OpenCL ResNet50推理测试
  • FreeRTOS的学习记录(任务创建,任务挂起)
  • 【数据结构】_二叉树
  • MyBatis 核心组件源码分析
  • JS逆向-某易云音乐下载器
  • 安卓 Audio Stream 类型
  • 【找工作系列①】【大四毕业】【复习】巩固JavaScript,了解ES6。
  • 复旦微FMQL调试笔记:PS网口
  • 大模型学习:Deepseek+dify零成本部署本地运行实用教程(超级详细!建议收藏)
  • 【LUT技术专题】针对降噪优化的通道感知轻量级LUT算法:DnLUT
  • C/C++实践(十)C语言冒泡排序深度解析:发展历史、技术方法与应用场景
  • cadence安装license manager无法开启,显示并行配置不正确
  • 20250517让NanoPi NEO core开发板在Ubuntu core16.04.2下支持TF卡的热插拔
  • Linux中的域名解析服务器
  • Linux下Nginx源码安装步骤详解
  • 告别 pip:使用 uv 加速你的 Python 包管理
  • Android Studio报错Cannot parse result path string:
  • 2023年全国青少年信息素养大赛-图形化编程复赛真题—打气球
  • 网络编程中的直接内存与零拷贝
  • JDBC 的编写步骤及原理详解
  • 素数筛(欧拉筛算法)
  • PIC16F18877 的主时钟 设置方法
  • Python爬虫实战:获取1688商品信息
  • [PMIC]PMIC重要知识点总结
  • 大数据会被AI取代?不!大数据才是AI的“智慧燃料”引擎