链表分为带头节点与不带头节点的

1、head节点

(1)不存放具体的数据

(2)表示单链表头

单链表带头节点的增删查改

public class SingleLinkedList {//头节点不要动private HeroNode head=new HeroNode(0,null,null);//添加节点到单向链表//不考虑编号顺序时public void addHero(HeroNode heroNode){//因为head节点不能动,因此我们需要一个辅助遍历temp;HeroNode temp=head;//遍历链表,找到最后while(true){if(temp.next==null){break;}temp=temp.next;}//将最后这个节点的next指向链表的最后temp.next=heroNode;}public void addHeroOrder(HeroNode heroNode){HeroNode temp=head;boolean flag=false;while(true){if(temp.next==null){break;}if(temp.next.no>heroNode.no){break;}if(temp.next.no==heroNode.no){flag=true;break;}temp=temp.next;}if(flag){System.out.println("该编号已存在");}else{heroNode.next=temp.next;temp.next=heroNode;}}public void update(HeroNode newHeroNode){HeroNode temp=head.next;boolean flag=false;if(temp==null){System.out.println("未找到数据");return;}while(true){if(temp.no==newHeroNode.no){flag=true;break;}if(temp.next==null){break;}temp=temp.next;}if(flag==true){temp.name=newHeroNode.name;temp.nickName= newHeroNode.nickName;}else{System.out.println("未找到");}}//通过一个辅助变量public void list(){if(head.next==null){System.out.println("链表为空");return;}HeroNode temp=head.next;while(true){if(temp==null){break;}System.out.println(temp);temp=temp.next;}}public boolean delete(int no){HeroNode temp=head;boolean flag=false;if(temp.next==null){System.out.println("未找到");}while (true){//找到上一个节点if(temp.next.no==no){flag=true;break;}temp=temp.next;}if(flag){temp.next=temp.next.next;}return true;}public static void main(String[] args) {SingleLinkedList singleLinkedList = new SingleLinkedList();HeroNode heroNode = new HeroNode(1,"张三","张");HeroNode heroNode2 = new HeroNode(12,"李四","李");HeroNode heroNode3 = new HeroNode(6,"李四","李");
//        singleLinkedList.addHero(heroNode);
//        singleLinkedList.addHero(heroNode2);
//        singleLinkedList.addHero(heroNode3);singleLinkedList.addHeroOrder(heroNode);singleLinkedList.addHeroOrder(heroNode2);singleLinkedList.addHeroOrder(heroNode3);singleLinkedList.list();HeroNode heroNode4 = new HeroNode(7,"李四1","李1");singleLinkedList.delete(12);singleLinkedList.list();}
}
class  HeroNode{int no;String name;String nickName;HeroNode next;public HeroNode( int no,String name,String nickName){this.name=name;this.no=no;this.nickName=nickName;}@Overridepublic String toString() {return "编号:"+no+","+"姓名:"+name+","+"昵称:"+nickName;}
}

Java中链表的使用相关推荐

  1. java 查找链表中间元素_如何在Java中一次性查找Java中链表的中间元素

    如何在一次传递中找到LinkedList的中间元素?这是一个 Java 和非Java程序员面试时经常被问到的编程问题.这个问题类似于检查回文或计算阶乘,有时也会要求编写代码.为了回答这个问题,候选人必 ...

  2. 【算法】Java 中链表的基本操作

      链表是一种重要的数据结构,在工程项目中广泛使用.对于链表,要搞清楚是否有头节点,即第一个节点不存任何数据,只是表示链表的头部,而首节点才是链表第一个真正存放数据的节点.通常情况下,对有头节点的链表 ...

  3. java查找链表中间元素_如何通过Java单次查找链表的中间元素

    java查找链表中间元素 您如何一次找到LinkedList的中间元素是一个编程问题,在电话采访中经常问Java和非Java程序员. 这个问题类似于检查回文或 计算阶乘 ,有时Interviewer还 ...

  4. java 查找链表中间元素_java查找链表中间元素_如何通过Java单次查找链表的中间元素...

    java查找链表中间元素 您如何一次找到LinkedList的中间元素是一个编程问题,在电话采访中经常问Java和非Java程序员. 这个问题类似于检查回文或 计算阶乘 ,有时Interviewer还 ...

  5. 都是套路:盘点 Java 面试中链表的几大解题模板方法!

    来自:码海 前言 如果说数据结构是算法的基础,那么数组和链表就是数据结构的基础.因为像堆,栈,对,图等比较复杂的数组结基本上都可以由数组和链表来表示,所以掌握数组和链表的基本操作十分重要. 今天就来看 ...

  6. java集合—— 链表(java中的所有链表都是双向链表)

    [0]README 0.1) 本文描述转自 core java volume 1, 源代码 diy 的, 旨在理解 java集合-- 链表(java中的所有链表都是双向链表) 的相关知识: 0.2) ...

  7. java排序链表冒泡排序_Java中的冒泡排序

    java排序链表冒泡排序 Java Sorting is one of the many aspects of java interview questions. In this post, we w ...

  8. java中的LinkedList(链表)与ArrayList(动态数组):(1)简单辨析

    一.数组的缺点(为什么需要引入JAVA集合): 数组不是面向对象的,存在明显的缺陷,集合弥补了数组的缺点,比数组更灵活更实用,而且不同的集合框架类可适用不同场合. 首先数组可以存放基本数据类型和对象, ...

  9. Java中使用链表解决约瑟夫问题(丢手绢问题)

    文章目录 文章目录 前言 一.思路分析 二.代码实现 1.Chird类建立 2.链表创建 3.功能实现 总结 其他解决方式: Java中使用list解决约瑟夫问题https://blog.csdn.n ...

最新文章

  1. 6系A卡笔记本移动版:HD6470/6550/6630/6650/6730/6770M
  2. ae运动模糊怎么调整_如何快速成长为一名AE高手?
  3. 【7集iCore3基础视频】7-4 iCore3连接示意图
  4. 如何根据configure.ac和Makefile.am为开源代码产生当前平台的Makefile
  5. poj1113 凸包
  6. 写入img虚拟软盘镜像_codestorm_新浪博客
  7. windows7修改或删除曾经保存的远程桌面连接的密码
  8. libcef和js交互
  9. h5背景图片尺寸怎么设置_html如何设置图片大小
  10. SuperMap iClient3D for WebGL教程(特效)- 点光源
  11. Java8中Map新方法:compute使用详解
  12. 【文件处理】python 在线预览文件_OFFICE 文档转换为html在线预览
  13. 论文解读:MeLU:Meta-Learned User Preference Estimator for Cold-Start Recommendation
  14. vue数组中添加新字段,改变字段后值没有比变化
  15. java thread dump
  16. DTOJ 1486:分数(score)
  17. 14岁妹妹欲捐骨髓救乱患红血病哥哥
  18. eclipse中测试java_在Eclipse中使用JUnit进行单元测试
  19. Android快速银联集成支付
  20. java pgp加密_基于Java Bouncy Castle的PGP加密解密示例

热门文章

  1. 汽车坐垫的颜颜色配原则
  2. react实现一个简单的计算器
  3. 第1章金融概念及金融决策习题---金融学基础
  4. 各语言转wasm-js调用
  5. 在打印CAD图纸的时候,怎么将图纸打印成纵向的
  6. redis ZSet php,redis中zset怎么使用
  7. 一致性hash算法虚拟节点_一致性哈希虚拟节点
  8. py-exe编译与反编译
  9. 如何设置一个叫号排队系统?
  10. 工作室课题第一周笔记