java中的ListNode链表

ListNode

刷LeetCode碰到一个简单链表题,题目已经定义了链表节点ListNode

struct ListNode {int val;    //定义val变量值,存储节点值struct ListNode *next;   //定义next指针,指向下一个节点,维持节点连接}
  • 在节点ListNode定义中,定义节点为结构变量。
  • 节点存储了两个变量:value 和 next。value 是这个节点的值,next 是指向下一节点的指针,当 next 为空指针时,这个节点是链表的最后一个节点。
  • 注意注意val只代表当前指针的值,比如p->val表示p指针的指向的值;而p->next表示链表下一个节点,也是一个指针。
  • 构造函数包含两个参数 _value 和 _next ,分别用来给节点赋值和指定下一节点

链表结构,在Java中用需要自己定义一个ListNode类来生成链表对象。

自定义的ListNode链表类如下:

public class ListNode {int val;ListNode next;   // 下一个链表对象ListNode(int x) { val = x; }  //赋值链表的值}

leetcode第2题,链表做带进位加法
输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 两个已知链表对象ListNode l1, ListNode l2
输出:7 -> 0 -> 8
原因:342 + 465 = 807

题目解析和注释如下:

class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
//生成ListNode链表对象,链表的值为0,没有指向的节点ListNode dummyHead = new ListNode(0);ListNode p = l1, q = l2, curr = dummyHead;int carry = 0;while (p != null || q != null) {//两个链表的同一位赋值给变量x和yint x = (p != null) ? p.val : 0;int y = (q != null) ? q.val : 0;int sum = carry + x + y;carry = sum / 10; //这里的carry循环时在上面这个式子用int sum = carry + x + y;curr.next = new ListNode(sum % 10);  //如果结果是两位数,各位数留在结果链表里curr = curr.next;if (p != null) p = p.next;if (q != null) q = q.next;}//最后一位的进位,如果有进位,把进位放到下一个链表里if (carry > 0) {curr.next = new ListNode(carry);}return dummyHead.next;
}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/557665.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

暴风酷播云二期配置_暴风播酷云二期 黑群晖

暴风播酷云二期 安装黑群晖 全记录安装前准备硬件准备拆机,主板扣掉电池后,用螺丝刀或其他导体连接主板上放置纽扣电池的正负极造成短路放电。软件准备下载群晖引导文件,本文中采用1.04b;下载群晖系统文件,群晖官网即可…

判定覆盖与条件覆盖的区别

判定覆盖与条件覆盖的区别 判定覆盖只关心判定表达式的值(真/假),而条件覆盖涉及到判定表达式的每个条件的值(真/假)。 举个最简单的例子,方便理解: 判定表达式:a>1 or b>1…

mysql scrapy 重复数据_MySQL大数据量表中删除重复记录

MySQL大数据量表中删除重复记录最近工作中需要抓取大量新闻,抓取的数据中由于一些原因存在一些重复数据,而整个数据表的记录数接近10万条,大小接近1个G,又在我自己的渣渣本本上,查询速度十分不理想,想要完成…

某公司为本科以上学历的人重新分配工作,分配原则如下。 (1)如果年龄不满18岁,学历是本科,男性要求报考研究生,女性则担任行政工作; (2)如果年龄满18岁不满5o 岁,学历本科,不分男女,任中层领导

软件测试——决策表 10.某公司为本科以上学历的人重新分配工作,分配原则如下。 (1)如果年龄不满18岁,学历是本科,男性要求报考研究生,女性则担任行政工作; (2)如果年龄满18岁不满5o 岁,学历本科,不分男女&…

分布式锁 哨兵模式_手撕redis分布式锁,隔壁张小帅都看懂了!

前言上一篇老猫和小伙伴们分享了为什么要使用分布式锁以及分布式锁的实现思路原理,目前我们主要采用第三方的组件作为分布式锁的工具。上一篇运用了Mysql中的select …for update实现了分布式锁,但是我们说这种实现方式并不常用,因为当大并发…

.某学校的学生公寓有14栋楼,用A~N这14个大写字母的其中一个代表楼号,每栋楼的层数为6层,用1~6六个数字表示。每层楼有40个房间,编号为01~40。具体表示一个宿舍房间时,用1个字母加3位数字表

软件测试——等价类划分法 1.某学校的学生公寓有14栋楼,用A~N这14个大写字母的其中一个代表楼号,每栋楼的层数为6层,用1~6六个数字表示。每层楼有40个房间,编号为01~40。具体表示一个宿舍房间时…

python 贪吃蛇大作战_python实现简单贪吃蛇游戏

本文实例为大家分享了python实现贪吃蛇游戏的具体代码,供大家参考,具体内容如下代码:from turtle import *from random import randrangefrom time import sleep### 定义变量snake [[0,0],[10,0],[20,0],[30,0],[40,0],[50,0]]apple_x rand…

如何免费下载和安装Windows 11

微软今天放出了 Windows 11 Build 22000.51 预览版,如果你想要尝鲜或者冒险,那么本文分享如何免费下载和安装 Windows 11 的小技巧。再次需要提醒的是,目前 Windows 11 系统极不稳定,充斥着大量 BUG,可能会导致系统崩溃…

python函数被调用才能执行吗_python3x函数在不被调用的情况下运行

这是我的密码code__author__ Jared Reabow__name__ Assignment 2 Dice game#Date created: 14/11/2014#Date modified 17/11/2014#Purpose: A game to get the highest score by rolling 5 virtual dice.import random#pre defined variablesNumberOfDice 5 #this variable …

Java 为什么数组下标只能为int不能为long?int32位,为何最大值不是2^32 -1 ? java基本类型取值范围

一个小标为int的byte数组全部放满东西需要的内存为(2^31-11)*1b2Gb0.25GB 一个小标为long的byte数组全部放满东西需要的内存为(2^631)*1b 需要的内存太大 !! byte: byte 数据类型是8位、有符号的&#xf…

输出分组_通过分组卷积的思想,巧妙的代码实现动态卷积(Dynamic Convolution)

论文的题目为《Dynamic Convolution: Attention over Convolution Kernels》paper的地址https://arxiv.org/pdf/1912.03458.pdf代码实现地址,其中包含一维,二维,三维的动态卷积;分别可以用于实现eeg的处理,正常图像的处…

java基本数据类型转为String类型的4种常见方法

1.toString 先把基本数据类型装箱,再用对象的toString()方法 2.String类的valueOf方法 这是一个静态方法,几乎可以把各种类型转换为字符串 String.valueOf(); 注意区别包装类的valueOf方法,那个也是静态方法,返回的是包装类型。 3.加一…

北大青鸟消防控制器组网_北大青鸟JBF-61S20防火门监控器控制器接线示意图

北大青鸟JBF-61S20防火门监控器控制器接线示意图一,北大青鸟JBF-61S20防火门监控器控制器接线示意图功能防火门控制及状态 监测功能手动、自动关闭常开防火门;实时监控常开或常闭防火门的状态信息,并进行上报和显示。联网功能监控器可以与青鸟…

Java的Comparator排序(升序降序)理解

Java的Comparator排序(升序降序)理解 int compare(T o1, T o2);   这里o1表示位于前面的对象,o2表示后面的对象 返回-1(或负数),表示不需要交换01和02的位置,o1排在o2前面,asc 返…

sqlserver发布订阅无法初始化快照_SQLServer2008R2 发布订阅及相关问题解决办法

前言:前两天接到领导的任务,将一个系统A的客户数据同步到另一个系统B中,以后客户录入入口只有A系统,B系统不提供录入入口,因为各种原因不能使用接口方式A系统和B系统直接交互同步,只能通过数据库重A库同步到…

JAVA中基本类型Boolean占几个字节

今天在整理JAVA基础知识时发现几大基本数据类型的封装类都有其BYTES值,也就是位数,除了Boolean。特意查了下资料,发现有几大说法,如下: 1.单个的boolean 类型变量在编译的时候是使用的int 类型。 boolean atrue;//这个a在JVM中占4个字节即:32位。 2.bo…

怎么在linux上修改mysql端口映射_如何在Linux中更改默认的MySQL / MariaDB端口

在本指南中,我们将学习如何更改MySQL / MariaDB数据库在CentOS 7和基于Debian的Linux发行版中绑定的默认端口。 MySQL数据库服务器在Linux和Unix下运行的默认端口是3306 / TCP 。为了在Linux中更改默认的MySQL / MariaDB数据库端口,请通过执行以下命令打…

java 泛型的上限与下限、泛型通配符、泛型上下限

java 泛型的上限与下限 设置泛型对象的上限使用extends,表示参数类型只能是该类型或该类型的子类&#xff1a; 声明对象&#xff1a;类名<? extends 类> 对象名 定义类&#xff1a;类名<泛型标签 extends 类>{} 设置泛型对象的下限使用super,表示参数类型只能是…

hashmap为什么线程不安全_StringBuilder为什么线程不安全?

点击上方“Java知音”&#xff0c;选择“置顶公众号”技术文章第一时间送达&#xff01;作者&#xff1a;千山juejin.im/post/5d6228046fb9a06add4e37fe引言面试官&#xff1a;StringBuilder和StringBuffer的区别在哪&#xff1f;我&#xff1a;StringBuilder不是线程安全的&am…

java中的重量级与轻量级概念

首先轻量级与重量级是一个相对的概念&#xff0c;主要是对应用框架使用方便性和所提供服务特性等方面做比较的。 比方说EJB就是一个重量级的框架&#xff0c;因为它对所编写的代码有限制&#xff0c;同时它也提供分布式等复杂的功能。 相比之下&#xff0c;Spring就是轻量级框架…