java链表的基本操作
一,定义节点类
//定义节点类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; }}
二、创建一个新的节点。ListNode list=new ListNode(0)
ListNode list=new ListNode() 初始化一个空节点,无值,不提倡此种写法。ListNode list=new ListNode(0) 初始化一个节点值为0的空节点,最常用最正规写法ListNode list=null 为空,什么都没有,一般不这么写;
哨兵节点
我们在做题的时候,常常要进行插入,删除等操作,不可避免的会使头结点丢失。这个时候我们就要定义一个节点来保存头结点,这个节点就是哨兵节点。一般的,我们进行做题的时候,只需要对b进行操作,最后返回a就可以了。
ListNode a = new ListNode(0);ListNode b = a;
三,遍历,插入,删除 。
遍历
public void displayAllNodes(ListNode list) {ListNode current = list;while (current != null) {System. out.println(current.val);current = current. next;}}
插入,将链表的头结点指向的节点放到待插入的节点的后面,然后让头结点指向待插入节点即可。插入其他位置都是这样的思路。
public void add(ListNode list,int a) {ListNode aNode = new ListNode(a);ListNode current = list;
//在头节点插入aNode.next=current.next;current.next=aNode;}
删除。 让所需要删除的节点等于它下一个节点即可。
public void add(ListNode list) {ListNode current = list;
//删除头结点current = current.next;}
java链表的基本操作相关推荐
- Java链表(基本操作)
·链表是一种最为简单的数据结构,它的主要目的是依靠引用关系来实现多个数据的保存,下面代码以String字符串类型示例 class Node {private String data;private N ...
- 链表的基本操作 java_详细实现单链表的基本操作【Java版】
节点类 static Node head=new Node(); static class Node{ int data; Node next; public Node() {//无参构造方法,默认d ...
- 【Java】链表的基本操作
链表主要是为了弥补一些顺序表的缺点: 顺序表的插入删除操作时间复杂度为 O(N) 增容需要申请新空间,拷贝数据,释放旧空间,会有不小的消耗 增容一般都是成2倍增长,会浪费一定的空间 为了解决以上问题引 ...
- 数据结构之【线性表】(顺序表、链表的基本操作实现)
概念 线性表:是N个数据元素的有限序列. 顺序表:用一组地址连续的存储单元依次存储[线性表 ]的数据元素.(区别于有序表:表中的数据元素存在非递增或非递减有序) 链表:用一组任意的存储单元来存储[线性 ...
- JAVA链表中迭代器的实现
注:本文代码出自<java数据结构和算法>一书. PS:本文中类的名字定义存在问题,Link9应改为Link.LinkList9应该为LinkList.由于在同包下存在该名称,所以在后面接 ...
- java 增 删 查 改_如何对java链表进行增、删、查、改操作
如何对java链表进行增.删.查.改操作 发布时间:2020-06-23 10:41:33 来源:亿速云 阅读:79 作者:Leah 如何对java链表进行增.删.查.改操作?针对这个问题,今天小编总 ...
- 链表c++语言 解析,C++ 单链表的基本操作(详解)
链表一直是面试的高频题,今天先总结一下单链表的使用,下节再总结双向链表的.本文主要有单链表的创建.插入.删除节点等. 1.概念 单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数 ...
- JAVA I/O基本操作
JAVA I/O基本操作 JAVA文件操作 JAVA字节流 JAVA字符流 JAVA缓存流 JAVA对象流 JAVA数据流 本文主要借鉴以下博客和网站: how2j.cn 深入理解java中的I/O ...
- 《剑指offer》第二章小结(1)——链表的基本操作
<剑指offer>第二章小结(1)--链表的基本操作 面试题5是从尾到头打印链表,与此相关的链表的基本操作应该知道. 下面代码中列举了单链表的创建.遍历.插入和删除四种操作.参考网址: h ...
最新文章
- 分享Kali Linux 2017年第24周镜像文件
- activemq高级客户端选项
- 【DWR系列04】- DWR配置详解
- improvement不可数
- kafka一键启动集群
- Hadoop localhost: frankxulei@localhost: Permission denied (publickey,password)
- app分发源码_第三方苹果企业签名源码
- 通过jdbc的mysql驱动连接oceanbase mysql模式数据库
- Tomcat学习总结(18)—— Tomcat启动时org.apache.catalina.util.SessionIdGenerator产生安全随机类SecureRandom的实例慢问题解决
- 随想录(学习使用virtualbox软件)
- Atitit 常用数据类型有哪些 目录 1.1. 数值类型 整数 小数 自增整数	1 1.2. 货币类型	1 1.3. 字符类型 字符串	2 1.4. 日期/时间类型 时间戳	2 1.5. Ur
- 各大物联网通信技术对比
- linux下mariadb的服务启动异常,centos7 – CentOS 7 MariaDB错误“无法启动mariadb.service:找不到单位.”...
- DELL新版BIOS重装系统win10
- java八皇后答案_java八皇后问题详解
- 僵尸国度.Z.Nation
- 使用scrapy框架做武林中文网的爬虫
- 查看手机IMEI IMSI
- Linux 命令(217)—— iptables-restore 命令
- [C语言编程练习][01]输入ASCII码值,输出对应的字符