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,数据结构,单链表
0
投稿

猜你喜欢

  • 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
  • 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
  • Java中避免过多if-else的几种方法

    2023-11-28 13:07:09
  • Java中JDBC连接数据库详解

    2023-08-10 16:57:18
  • Spring JDBCTemplate原理及使用实例

    2023-03-11 09:47:19
  • C#获取网页源代码的方法

    2023-06-19 05:43:44
  • MyBatis利用MyCat实现多租户的简单思路分享

    2022-08-16 18:58:33
  • Java C++实现相同MD5加密算法的方式

    2023-10-12 12:26:02
  • Android Flutter使用本地数据库编写备忘录应用

    2023-09-15 17:24:09
  • springboot访问template下的html页面的实现配置

    2023-02-09 23:33:21
  • Java异常处理中同时有finally和return语句的执行问题

    2022-08-14 15:28:30
  • 微信小程序微信登录的实现方法详解(JAVA后台)

    2023-08-29 12:37:25
  • Java线程池ThreadPoolExecutor源码深入分析

    2023-11-09 19:49:36
  • asp之家 软件编程 m.aspxhome.com