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

leetcode2-两数相加

leetcode 2
在这里插入图片描述

思路

  1. 链表特性利用:由于数字按逆序存储,个位在链表头部,因此可以直接从前往后遍历链表进行逐位相加

比如题目中的 2->4->3 和 5->6->4 其实可以直接按位从第一位开始往后相加,就得到啦708
这样比把数字转换为342+465 得到结果以后再把结果倒叙设置链表更简单

  1. 进位处理:每一位相加可能产生进位(如 9+9=18,进位为 1),需要用变量 count 记录进位值

如果有进位,那么下一次相加的时候就要把进位的数也加上,加上以后注意需要清空count,然后再判断如果当前两个数相加以后的值也有进位,那就继续更新count

  1. 虚拟头节点:使用虚拟节点 dummy 简化头节点处理,避免单独判断空链表情况

  2. 边界处理:当加到l1 l2最后的时候,最后两位相加如果大于10那么还会有进位,此时需要单独再判断如果count还有值需要设置最后一位链表为count

实现

class ListNode {constructor(val, next = null) {this.val = val;this.next = next;}
}function addTwoNumbers(l1, l2) {let count = 0; // 记录是否有进位// 创建虚拟节点let dummy = new ListNode();let cur = dummy;while (l1 || l2) {let val = 0;if (l1) {val += l1.vall1 = l1.next;}if (l2) {val += l2.val;l2 = l2.next;}if (count) {val += count;count = 0;}if (val > 9) {count++;val = val % 10;}cur.next = new ListNode(val);cur = cur.next;}if(count){cur.next = new ListNode(count)}return dummy.next;
}

相关文章:

  • 【CF】Day84——Codeforces Round 862 (Div. 2) D (⭐树的直径的性质 + DFS找树的直径)
  • K8S中使用英伟达GPU
  • 在 CentOS中安装Docker并安装青龙脚本——笔记
  • Vue3 实现老虎机抽奖游戏
  • Spring AI Alibaba Graph 实践
  • 【AD笔记】嘉立创元件导入到AD中(原理图-pcd-3D模型)
  • Elasticsearch从安装到实战、kibana安装以及自定义IK分词器/集成整合SpringBoot详细的教程ES(四)查询、排序、分页、高亮
  • DBAPI如何实现API编排
  • Excel大厂自动化报表实战(互联网金融-数据分析周报制作下)
  • 仿飞书部门选择器
  • 【YOLO 系列】基于YOLO的车载摄像头道路标志和车辆目标检测识别系统【python源码+Pyqt5界面+数据集+训练代码】
  • ELK 日志分析系统深度解析与实战指南
  • C++批量读取指定后缀文件
  • GTSAM中InitializePose3::initialize()使用详解
  • 介绍常见的图像和视频存储格式以及其优劣势
  • 大模型在颈椎管狭窄诊疗中的应用研究报告
  • 【驱动设计的硬件基础】串口
  • aflplusplus:开源的模糊测试工具!全参数详细教程!Kali Linux教程!(三)
  • C++开源协程库async_simple有栈协程源码分析
  • Python 函数
  • 模板网站做外贸可以吗/成都网站快速排名软件
  • 外贸移动商城网站建设/网络推广免费平台
  • 建设网站的公司的官网/百度收录要多久
  • 烟台专业做网站公司哪家好/凡科网免费建站
  • 设计公司企业文化/杭州seo网站推广排名
  • 网站未授权cas要怎么做/活动宣传推广方案怎么写