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

news/2024/11/29 12:40:22/

题目描述跳转到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.ppmy.cn/news/103990.html

相关文章

常见的主流自动化测试框架,这5种真的帮助巨大

今天我们要向大家介绍的是常见5种主流自动化测试框架,包括优缺点等内容,供大家参考学习。 1.ATF 自动化测试框架AutoTestFramework是B/S架构框架,可实现Selenium等多种自动化测试全流程、团队化管理的高级框架平台,通过集成自动化…

【论文阅读笔记】Contrast image correction method

论文小结: 本文是2010年发表出来的一篇文章,提出的方法是一种增强对比度的方法,其基本原理是自适应参数的 ganma 校正。ganma 校正的目标在于同时校正曝光过度和曝光不足区域的图像。   同时,为了防止光晕伪影,使用双…

从零开始学Android开发期末复习重点

目录 前言作业1作业2作业3作业4作业5作业6 前言 物联网应用技术课程期末复习重点——学习通作业: 操作系统:Ubuntu22.04 作业1 简述Android系统架构。 Android 的系统架构和它的操作系统一样&#xff…

测试之路,你知道这些变化吗?突破后助你走得更远...

前言 Python自动化测试:7天练完这60个实战项目,年薪过35w。 目前的面试求职市场上,测试领域有哪些变化? 以这两年软件测试发展经历来看,现在的求职市场,已经不仅仅只考察个人的项目经验和技术能力了&#…

牛客网Linux错题一

1.关于Linux下的进程,论述不正确的是(A) A.僵尸进程会被init进程接管,僵尸进程不糊造成资源浪费 B.子进程的父进程在它之前退出,子进程会被init进程接管,它不会造成资源浪费 C.进程是资源管理的最小单位…

二十分钟秒懂:实现前后端分离开发(vue+element+spring boot+mybatis+MySQL)

目录 开发者介绍 什么是前后端分离开发 vue与springboot开发的优势 Vue.js 的优势: Spring Boot 的优势: vue与springboot如何实现前后端连接 demo简介 重要部分前端部分代码 重要部分后端代码 后端解决跨域问题 Controller部分 xml部分 se…

vue3的api解读-ref和reactive

目录 构造一个演示框架(VUE3) /src/examples/Helloworld.tsx /src/mytypes.d.ts /src/main.ts /src/App.tsx /src/layout.css /src/examples/RefExample.tsx /src/examples/ReactiveExample.tsx 思考 Vue提供的Reactive模式和vue.observable有…

机器学习 监督学习 Week2

Lib01 多变量线性回归 依旧是房价预测,但这次引入了多个变量,不仅仅只有房屋面积影响着房价,依旧尝试使用梯度下降算法找到最优的【w,b】,并且习惯使用向量点乘运算提高效率 import copy, math import numpy as np import matplot…