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

leetcode 2.两数相加(链表操作)

题目描述跳转到leetcode

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。
请你将两个数相加,并以相同形式返回一个表示和的链表。
你可以假设除了数字 0 之外,这两个数都不会以 0 开头。在这里插入图片描述

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/add-two-numbers
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题

  1. 创建一个ListNode用来存储 两个ListNode对应节点的值的和, 遍历LIstNode来获取l1,l2节点的值。
  2. 创建一个int变量用来存储进位值

注意

  • 因为两个链表的长度不一定相等,所以一旦其中一个链表为null,那么另一个链表之后的值需要+0。
  • 最后一对相加时要记得检查进位值是否为0,如果非0,则要新增一个节点来存储。
/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {ListNode head = new ListNode(0);// 指向当前节点的指针ListNode cur = head;// 进位值int carry = 0;// 遍历l1,l2while(l1 != null || l2 != null){int x = (l1 == null) ? 0 : l1.val;int y = (l2 == null) ? 0 : l2.val;int sum = x + y + carry;int num = sum%10;cur.next = new ListNode(num);carry = sum / 10;cur = cur.next;if(l1!=null) l1 = l1.next;if(l2!=null) l2 = l2.next;}// 最后一对是否需要进位,如需要则向listNode中再增加一个节点if(carry > 0){cur.next = new ListNode(carry);}return head.next;}
}

成功!
在这里插入图片描述

ps:本题需要了解ListNode的相关操作,我也整理了一份ListNode的常用操作

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

相关文章:

  • Jenkins是什么?以及Jenkins有哪些具体的应用呢?
  • 2023年数学建模:参数估计与假设检验:自助法(Bootstrap)详解
  • 华为OD机试真题 Java 实现【字符串通配符】【2022Q4 200分】
  • Android 11.0 user模式下解除系统进入recovery功能的限制
  • TDEngine3.0 环境安装、配置及使用经验总结
  • Redis7实战加面试题-高阶篇(Redlock算法和底层源码分析)
  • 保持Git历史提交整洁,解决冲突
  • CompletableFuture使用详解,多线程相关
  • (3)NUC980 kenerl编译
  • 华为OD机试真题 Java 实现【分奖金】【2022Q4 100分】
  • 迅为国产化RK3588开发板在安防前后端应用解决方案
  • Windows 安装 GCC
  • 下载安装LabVIEW
  • 从C语言到C++_14(vector的常用函数+相关选择题和OJ题)
  • Java NIO-非阻塞I/O(二)
  • PaaS平台iuap——数智底座支撑企业的全球化业务拓展
  • RK3318 android12 HEVC-1080P 4K VP9等格式视频播放不了
  • gpt技术简介以及具体应用领域
  • 【java】leetcode 二叉树展开为链表
  • windows环境, nginx https配置
  • git 命令
  • 【高分论文密码】大尺度空间模拟预测与数字制图
  • Word控件Aspose.Words教程:使用 C# 读取 SXC 和 FODS 文件
  • 代码示范【FabEdge v0.8.0】配置 connector 公开端口
  • 通过Python的PyPDF2库合并多个pdf文件
  • python基础 - python命名空间与作用域
  • MapReduce实战案例(3)
  • Socket(三)
  • 【JVM】12. 垃圾回收相关概念
  • Java 版 spring cloud 工程系统管理 工程项目管理系统源码 工程项目各模块及其功能点清单