java 数据结构单链表的实现
作者:lqh 时间:2022-07-24 09:45:33
java 数据结构单链表的实现
单链表实现链表的打印及元素删除操作,链表的实现主要是next属性的定义,将一堆节点关联起来的。实现简单的链表如下:
public class LinkNode {
private int value;
private LinkNode next;
public LinkNode(int x) {
value = x;
}
public LinkNode getNext(){
return next;
}
public void setNext(LinkNode next) {
this.next = next;
}
public int getValue() {
return value;
}
}
链表操作工具类如下:
public class LinkNodeUtil {
public LinkNode deleteNode(LinkNode list,LinkNode node) {
//空链表
if(node==null||list==null||list.getNext()==null){
return list;
}
//查找node节点
LinkNode curNode = list;
LinkNode preNode = null;
LinkNode next = list.getNext();
while(curNode!=null){
if(curNode.getValue()==node.getValue()){//找到
System.out.println("找到待删除对象了。"+node.getValue());
break;
}
preNode = curNode;
curNode = next;
next = next.getNext();
}
//删除node节点
if(preNode==null){
//第一个元素删除操作直接修正list为next:curNode-next
return next;
}else{
//删除中间节点中间:preNode-curNode-next
preNode.setNext(next);
return list;
}
}
public void printListNode(LinkNode list){
LinkNode node = list;
while(node!=null){
System.out.println(node.getValue());
node = node.getNext();
}
}
public static void main(String[] args) {
LinkNode n1 = new LinkNode(1);
LinkNode n2 = new LinkNode(2);
LinkNode n3 = new LinkNode(3);
LinkNode n4 = new LinkNode(4);
n1.setNext(n2);
n2.setNext(n3);
n3.setNext(n4);
n4.setNext(null);
LinkNodeUtil s = new LinkNodeUtil();
s.printListNode(n1);
s.printListNode(s.deleteNode(n1, n3));
}
}
注意链表删除节点如果是第一个节点的话,直接将链表对象赋值给next对象并返回。链表的简单知识,记录于此。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
来源:http://blog.csdn.net/wojiushiwo945you/article/details/50563293
标签:java,数据结构,单链表
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
java 实现文件夹的拷贝实例代码
2023-01-04 10:19:28
Spring Cloud Gateway不同频率限流的解决方案(每分钟,每小时,每天)
2023-01-05 13:49:34
实例讲解Java中random.nextInt()与Math.random()的基础用法
2023-11-29 12:29:54
![](https://img.aspxhome.com/file/2023/5/60605_0s.jpg)
java底层JDK Logging日志模块处理细节深入分析
2023-02-04 12:47:31
java控制台实现学生信息管理系统
2023-11-29 02:05:20
Java Timer使用讲解
2023-11-28 20:30:33
Java synchronized关键_动力节点Java学院整理
2023-11-10 11:08:53
Java利用MultipartFile实现上传多份文件的代码
2023-11-25 11:29:13
java实现word文档转pdf并添加水印的方法详解
2023-05-26 02:59:18
![](https://img.aspxhome.com/file/2023/9/62139_0s.png)
Java中避免过多if-else的几种方法
2023-11-28 13:07:09
Java中JDBC连接数据库详解
2023-08-10 16:57:18
![](https://img.aspxhome.com/file/2023/2/58162_0s.png)
Spring JDBCTemplate原理及使用实例
2023-03-11 09:47:19
![](https://img.aspxhome.com/file/2023/4/62134_0s.png)
C#获取网页源代码的方法
2023-06-19 05:43:44
MyBatis利用MyCat实现多租户的简单思路分享
2022-08-16 18:58:33
![](https://img.aspxhome.com/file/2023/6/62716_0s.png)
Java C++实现相同MD5加密算法的方式
2023-10-12 12:26:02
![](https://img.aspxhome.com/file/2023/5/58685_0s.jpg)
Android Flutter使用本地数据库编写备忘录应用
2023-09-15 17:24:09
![](https://img.aspxhome.com/file/2023/6/109226_0s.webp)
springboot访问template下的html页面的实现配置
2023-02-09 23:33:21
![](https://img.aspxhome.com/file/2023/5/61085_0s.png)
Java异常处理中同时有finally和return语句的执行问题
2022-08-14 15:28:30
微信小程序微信登录的实现方法详解(JAVA后台)
2023-08-29 12:37:25
![](https://img.aspxhome.com/file/2023/0/58370_0s.jpg)
Java线程池ThreadPoolExecutor源码深入分析
2023-11-09 19:49:36