class Node{
public int val;
public Node next; public Node(int val){
this.val=val;
} } class LinkList{
private Node head;
private Node tail; //链表对象增加节点
public void addNode(Node node){
if (this.head==null){ //链表初始化,第一个节点
this.head=node;
this.tail=node;
this.tail.next=null;
}
else //链表最后挂载节点
{
this.tail.next=node;
this.tail=node;
} } //查询节点
public Node getNode(int val)
{
Node temp=this.head;
while (temp!=null)
{
if (temp.val==val)
{
return temp;
}
temp=temp.next;
}
return null; } //修改节点的值
public void updateNode(int val,int value){
Node temp=this.head;
while (temp!=null)
{
if (temp.val==val)
{
temp.val=value;
}
temp=temp.next;
}
} //删除节点
public Node deleteNode(int val){
Node temp=this.head;
if (this.head.val==val)
{
this.head=this.head.next;
return temp;
} while (temp.next!=null)
{ if (temp.next.val==val)//直接判断的当前节点的下一个节点的值;
//所以必须判断下一个节点不能为null,即只判断到倒数第二个节点即可
{
Node delNode=temp.next;
temp.next=temp.next.next; //当前节点直接连接下一个节点的下一个节点 从而实现删除,当前节点的下一个节点
return delNode;
} temp=temp.next; } return null;
} //打印所有节点的值
public void getAllNodes(){
Node temp=this.head;
while (temp!=null)
{
System.out.print(temp.val+" ");
temp=temp.next;
}
System.out.println();
}
} public class TestLink
{
public static void main(String[] args){
LinkList ll=new LinkList();
ll.addNode(new Node(1));
ll.addNode(new Node(2));
ll.addNode(new Node(3));
ll.addNode(new Node(4));
if (ll.getNode(3)!=null)
{
System.out.println(ll.getNode(3).val);
}
if (ll.getNode(5)!=null)
{
System.out.println(ll.getNode(5).val);
} ll.updateNode(1,100);
ll.updateNode(4,400);
ll.updateNode(2,200);
ll.updateNode(5,500); ll.addNode(new Node(5));
ll.addNode(new Node(6)); System.out.println("************");
ll.deleteNode(6);
ll.getAllNodes();
ll.deleteNode(3);
ll.deleteNode(1);
ll.deleteNode(100);
System.out.println("************");
ll.getAllNodes(); }
}

java 实现 单链表的更多相关文章

  1. Java实现单链表的各种操作

    Java实现单链表的各种操作 主要内容:1.单链表的基本操作 2.删除重复数据 3.找到倒数第k个元素   4.实现链表的反转   5.从尾到头输出链表 6.找到中间节点 7.检测链表是否有环 8.在 ...

  2. java实现单链表的增删功能

    JAVA 实现单链表的增删功能 package linked; class LinkedTable{ } public class LinkedTableTest { public static vo ...

  3. JAVA数据结构——单链表

    链表:一. 顺序存储结构虽然是一种很有用的存储结构,但是他有如下几点局限性:1. 因为创造线性表的时候已经固定了空间,所以当需要扩充空间时,就需要重新创建一个地址连续的更大的存储空间.并把原有的数据元 ...

  4. 使用java实现单链表(转载自:https://www.cnblogs.com/zhongyimeng/p/9945332.html)

    使用java实现单链表----(java中的引用就是指针)转载自:https://www.cnblogs.com/zhongyimeng/p/9945332.html ? 1 2 3 4 5 6 7 ...

  5. 用Java实现单链表的基本操作

    笔试题中经常遇到单链表的考题,下面用java总结一下单链表的基本操作,包括添加删除节点,以及链表转置. package mars; //单链表添加,删除节点 public class ListNode ...

  6. java实现单链表常见操作

    一.概述: 本文主要总结单链表常见操作的实现,包括链表结点添加.删除:链表正向遍历和反向遍历.链表排序.判断链表是否有环.是否相交.获取某一结点等. 二.概念: 链表: 一种重要的数据结构,HashM ...

  7. Java实现单链表的快速排序和归并排序

    本文描述了LeetCode 148题 sort-list 的解法. 题目描述如下: Sort a linked list in O(n log n) time using constant space ...

  8. 数据结构——Java实现单链表

    一.分析 单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素.链表中的数据是以结点来表示的,每个结点由元素和指针构成.在Java中,我们可以将单链表定义成一个类,单链表的基 ...

  9. Java实现单链表翻转

    单链表翻转比方有例如以下链表: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmVuZ3NoaXp0eQ==/font/5a6L5L2T/fontsize ...

  10. 用java实现单链表

    对于一个单链表来说,要求有最基本的数据节点以及一些重要的方法. 方法应该有增删改查.定位.输出.获取链表长度.排序.链表读入.链表输出.下面是我用java写的单链表 public class List ...

随机推荐

  1. [LeetCode] 384. Shuffle an Array 数组洗牌

    Shuffle a set of numbers without duplicates. Example: // Init an array with set 1, 2, and 3. int[] n ...

  2. Java设计模式之:单例模式

    单例模式 建议实现方式:枚举方式实现单例 单例模式的定义 单例模式就是在程序运行中只实例化一次,创建一个全局唯一对象,有点像 Java 的静态变量,但是单例模式要优于静态变量,静态变量在程序启动的时候 ...

  3. laravel composer vendor 目录加载类库详细 之后做说明

    composer installLoading composer repositories with package informationInstalling dependencies (inclu ...

  4. Python中IO编程-StringIO和BytesIO

    Python在内存中读写数据,用到的模块是StringIO和BytesIO StringIO >>> from io import StringIO >>> f = ...

  5. 【转帖】MIPS构架之:我和龙芯有个约会

    MIPS构架之:我和龙芯有个约会 https://www.eefocus.com/mcu-dsp/364490 <处理器史话>之十二 2016-06-24 12:21 作者:付丽华预计 1 ...

  6. Fiddler如何切换hosts以及切换hosts的另一个神器SwithcHosts

  7. tcpdump网络调试

    简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中传送的数据包的 ...

  8. gorm 实现 mysql for update 排他锁

    关于 MySQL 的排他锁网上已经有很多资料进行了介绍,这里主要是记录一下 gorm 如果使用排他锁. 排他锁是需要对索引进行锁操作,同时需要在事务中才能生效.具体操作如下: 假设有如下数据库表结构: ...

  9. Luogu4827 Crash的文明世界 组合、树形DP

    传送门 又是喜闻乐见的\(k\)次幂求和题目 那么\(S(x) = \sum\limits_{i=1}^n dist(i,x)^k = \sum\limits_{i=1}^n \sum\limits_ ...

  10. 内网Https 自签Https证书 配合Tomcat 实现内网Https详细图文

    内网项目启用Https配置手册 软件需求: OpenSSL https://www.openssl.org/ 已经安装了Java Jdk环境 制作前的需求: 已经配置了Jdk环境变量 安装好OpenS ...