用java实现单链表的头插,尾插和反转

今天来练习以下单链表的一些操作,以下的操作都是带有头节点的链表。

定义链表节点类

定义了节点中的值,节点的下一个节点,和一些基本的方法。

   public static class ListNode{int val;ListNode next;public ListNode() {}public ListNode(int val){this.val=val;}public ListNode(int val, ListNode next) {this.val = val;this.next = next;}@Overridepublic String toString() {return "Node{" +"val=" + val +", next=" + next +'}';}}

头插

头插的实现很简单,让想要插入的节点指向头节点指向的第一个节点,再让头节点指向想要插入的节点即可。

    public static void headInsert(ListNode root,ListNode node){node.next = root.next;root.next = node;}

尾插

尾插也很简单,直接循环遍历到最后一个节点,让其指向要插入的节点即可。

    public static void tailInsert(ListNode root,ListNode node){while(root.next!=null){root=root.next;}root.next=node;}

链表反转

链表的反转稍微复杂一点。

我们需要用到三个节点来保存链表中的节点。

定义cur指向当前想要反转的节点。

定义pre指向当前想要反转的节点的前一个结点,初始为null。

定义next指向当前想要反转的节点的下一个结点。

通过循环,先找到next,然后让cur指向pre,实现反转,再将pre和cur整体向后动以便完成下个结点的反转。

例如想要反转链表root->1->2->3,首先选中cur和next

当前pre为空然后让cur指向pre,再整体往后。

随后再走一遍流程

继续再走一遍完成,改变root指向。

    public static void reverasl(ListNode root){ListNode prev = null;ListNode curr = root.next;while (curr != null) {ListNode next = curr.next;curr.next = prev;prev = curr;curr = next;}root.next = prev;}

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

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

相关文章

NPM 命令备忘单

NPM 简介 Node Package Manager (NPM) 是 Node.js 环境中不可或缺的命令行工具,充当包管理器来安装、更新和管理 Node.js 应用程序的库、包和模块。对于每个 Node.js 开发人员来说,无论他们的经验水平如何,它都是一个关键工具。 NPM 的主要…

pom.xml显示灰色并被划线

在使用 IDEA 进行开发的过程中,有时候会遇到 pom.xml 显示灰色并被划线的情况,如下图: 这一般是因为该文件被 Maven 忽略导致的,可以进行如下操作恢复: 设置保存后,可以看到 pom.xml 恢复了正常&#xff1a…

计算机网络书籍--《网络是怎样连接的》阅读笔记

第一章 浏览器生成信息 1.1 生成HTTP请求信息 1.1.1 URL Uniform Resource Locator, 统一资源定位符。就是网址。 不同的URL能够用来判断使用哪种功能来访问相应的数据,比如访问Web服务器就要用”http:”,而访问FTP服务器用”ftp:”。 FTP&#xff…

支付系统核心逻辑 — — 状态机(JavaGolang版本)

支付系统核心逻辑 — — 状态机 代码地址:https://github.com/ziyifast/ziyifast-code_instruction/tree/main/state_machine_demo 1 概念:FSM(有限状态机),模式之间转换 状态机,也叫有限状态机&#xff08…

基于OptiTrack跟踪系统和Turtlebot机器人的视觉SLAM定位评估

本文旨在介绍使用OptiTrack光学跟踪系统和Turtlebot机器人进行视觉SLAM定位实验的详细流程,包括实验平台搭建过程、数据处理过程以及SLAM估计评估方法。由于涉及知识较多,部分内容只给出了相关参考博文链接。 1 实验平台搭建 实验平台包括OptiTrack光学…

Golang | Leetcode Golang题解之第26题删除有序数组中的重复项

题目&#xff1a; 题解&#xff1a; func removeDuplicates(nums []int) int {n : len(nums)if n 0 {return 0}slow : 1for fast : 1; fast < n; fast {if nums[fast] ! nums[fast-1] {nums[slow] nums[fast]slow}}return slow }

window10轻松使用k8s

Docker Desktop安装篇 1、win10安装 1、下载安装包 https://www.docker.com/products/docker-desktop/ 官网下载安装包 2、配置win10支持虚拟化 不勾选Hyper-V&#xff0c;容易出错 3、安装WSL配置window支持linux Windows Subsystem for Linux (WSL) 安装 Linux 子系统&am…

嵌入式sqlite3交叉编译移植

操作系统:Ubuntu20.04 下载sqlite3代码,下载版本3.30.00 wget https://www.sqlite.org/2019/sqlite-amalgamation-3300000.zip 或者https://download.csdn.net/download/benico/89127678 为什么下载amalgamation版本,不下载autoconf版本? 根据我的编译实验,同版本sql…

python爬取京东商品信息与可视化

项目介绍&#xff1a;使用python爬取京东电商拿到价格、店铺、链接、销量并做可视化 ........................................................................................................................................................... 项目介绍效果展示全部…

数据库系统概论(超详解!!!)第四节 数据库安全性

问题的提出&#xff1a; 数据库的一大特点是数据可以共享 数据共享必然带来数据库的安全性问题 数据库系统中的数据共享不能是无条件的共享。 1.数据库的安全概述 数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露、更改或破坏 。 系统安全保护措施是否有效…

C语言:约瑟夫环问题详解

前言 哈喽&#xff0c;宝子们&#xff01;本期为大家带来一道C语言循环链表的经典算法题&#xff08;约瑟夫环&#xff09;。 目录 1.什么是约瑟夫环2.解决方案思路3.创建链表头结点4.创建循环链表5.删除链表6.完整代码实现 1.什么是约瑟夫环 据说著名历史学家Josephus有过以下…

C/C++基础----判断和循环

判断 if-elseif-else判断 语句&#xff1a; 条件使用之前的逻辑运算符或者关系运算符 if(条件1){条件1成立时内容 }else if(条件2){条件2成立时内容 }else{所有条件不成立时内容 }#include <iostream>using namespace std;int main() {int age 10;if (age > 18) {c…

【C Hash Map from Redis】

将Redis源码中的哈希表底层逻辑提取&#xff0c;并进行最小demo级测试将对应文件抽出&#xff0c;通过宏替换等方式保证源码编译通过main.c编写测试demo &#xff0c;注册哈希函数和值比较函数&#xff08;必选项&#xff09; /* Hash Tables Implementation.** This file imp…

Java 原生代码获取服务器的网卡 Mac 地址、CPU序列号、主板序列号

1、概述 Java 可以获取服务器的网卡 Mac 地址、CPU 序列号、主板序列号等信息&#xff0c;用来做一些软件授权验证、设备管理等场景。 2、代码实现 package com.study.util;import java.net.InetAddress; import java.net.NetworkInterface; import java.util.Scanner;/*** …

elasticsearch7安全配置--最低安全等级,用户名密码

上一篇博客在centos7上安装了elasticsearch7 接下来对elasticsearch进行安全方面的配置 minimal security 最低安全等级&#xff0c;用户名密码 首先开启xpack vim config/elasticsearch.yml xpack.security.enabled: true由于我是单机配置的&#xff0c;还加了如下配置 d…

SAP HCM GET pernr无法获取到数据二

今天遇到一个比较奇怪的问题&#xff0c;PA30能查到员工主数据&#xff0c;任何信息类型也没有错误&#xff0c;但是核算工资的时候发现无法找到此人。 但是核算工资无法核算 断点到逻辑数据get pernr&#xff0c;也不会进入断点 查看0000数据有间隔 具体错误的代码位置如下&am…

从 iPhone 上的短信中恢复已删除的图片的可靠方法

您可能在浏览消息聊天时不小心删除了一些文本和照片。事实上&#xff0c;如果这些消息对你来说意义重大&#xff0c;那对你来说可能会很麻烦。当发生意外情况时&#xff0c;您可能不想恢复整个聊天&#xff0c;而是恢复其中的附件。 好了&#xff0c;这篇文章主要是讲如何灵活…

Towards Street-Level Client-Independent IP Geolocation(2011年)(第二部分)

被引次数:306 Wang Y, Burgener D, Flores M, et al. Towards {Street-Level}{Client-Independent}{IP} Geolocation[C]//8th USENIX Symposium on Networked Systems Design and Implementation (NSDI 11). 2011. 接着Towards Street-Level Client-Independent IP Geolocati…

【数据恢复软件】:Magnet AXIOM V8.0

Magnet AXIOM V8.0重大更新 1、全新的UI设计 2、更快的相应速度 3、补全工件分析 4、支持亚马逊AWS云数据&#xff08; 获取同一帐户或安全帐户上下文中的快照。 支持Windows实例、加密卷和超过1 TB的卷、具有多个卷的实例等等&#xff01; &#xff09; 5、Bug修复 6、AI支持…

AI虽强,搜索引擎仍不可或缺

AI 领域正以前所未有的速度发展&#xff0c;大模型的发布变得愈发频繁&#xff0c;模型的规模也在持续扩大。如今&#xff0c;大模型的起点已经攀升至数十亿参数&#xff08;数十 B&#xff0c;B 是 Billion 的简写&#xff0c;10 亿&#xff09;&#xff0c;其功能之广泛&…