java 实现 单链表
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 实现 单链表的更多相关文章
- Java实现单链表的各种操作
Java实现单链表的各种操作 主要内容:1.单链表的基本操作 2.删除重复数据 3.找到倒数第k个元素 4.实现链表的反转 5.从尾到头输出链表 6.找到中间节点 7.检测链表是否有环 8.在 ...
- java实现单链表的增删功能
JAVA 实现单链表的增删功能 package linked; class LinkedTable{ } public class LinkedTableTest { public static vo ...
- JAVA数据结构——单链表
链表:一. 顺序存储结构虽然是一种很有用的存储结构,但是他有如下几点局限性:1. 因为创造线性表的时候已经固定了空间,所以当需要扩充空间时,就需要重新创建一个地址连续的更大的存储空间.并把原有的数据元 ...
- 使用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 ...
- 用Java实现单链表的基本操作
笔试题中经常遇到单链表的考题,下面用java总结一下单链表的基本操作,包括添加删除节点,以及链表转置. package mars; //单链表添加,删除节点 public class ListNode ...
- java实现单链表常见操作
一.概述: 本文主要总结单链表常见操作的实现,包括链表结点添加.删除:链表正向遍历和反向遍历.链表排序.判断链表是否有环.是否相交.获取某一结点等. 二.概念: 链表: 一种重要的数据结构,HashM ...
- Java实现单链表的快速排序和归并排序
本文描述了LeetCode 148题 sort-list 的解法. 题目描述如下: Sort a linked list in O(n log n) time using constant space ...
- 数据结构——Java实现单链表
一.分析 单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素.链表中的数据是以结点来表示的,每个结点由元素和指针构成.在Java中,我们可以将单链表定义成一个类,单链表的基 ...
- Java实现单链表翻转
单链表翻转比方有例如以下链表: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmVuZ3NoaXp0eQ==/font/5a6L5L2T/fontsize ...
- 用java实现单链表
对于一个单链表来说,要求有最基本的数据节点以及一些重要的方法. 方法应该有增删改查.定位.输出.获取链表长度.排序.链表读入.链表输出.下面是我用java写的单链表 public class List ...
随机推荐
- [LeetCode] 384. Shuffle an Array 数组洗牌
Shuffle a set of numbers without duplicates. Example: // Init an array with set 1, 2, and 3. int[] n ...
- Java设计模式之:单例模式
单例模式 建议实现方式:枚举方式实现单例 单例模式的定义 单例模式就是在程序运行中只实例化一次,创建一个全局唯一对象,有点像 Java 的静态变量,但是单例模式要优于静态变量,静态变量在程序启动的时候 ...
- laravel composer vendor 目录加载类库详细 之后做说明
composer installLoading composer repositories with package informationInstalling dependencies (inclu ...
- Python中IO编程-StringIO和BytesIO
Python在内存中读写数据,用到的模块是StringIO和BytesIO StringIO >>> from io import StringIO >>> f = ...
- 【转帖】MIPS构架之:我和龙芯有个约会
MIPS构架之:我和龙芯有个约会 https://www.eefocus.com/mcu-dsp/364490 <处理器史话>之十二 2016-06-24 12:21 作者:付丽华预计 1 ...
- Fiddler如何切换hosts以及切换hosts的另一个神器SwithcHosts
- tcpdump网络调试
简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中传送的数据包的 ...
- gorm 实现 mysql for update 排他锁
关于 MySQL 的排他锁网上已经有很多资料进行了介绍,这里主要是记录一下 gorm 如果使用排他锁. 排他锁是需要对索引进行锁操作,同时需要在事务中才能生效.具体操作如下: 假设有如下数据库表结构: ...
- Luogu4827 Crash的文明世界 组合、树形DP
传送门 又是喜闻乐见的\(k\)次幂求和题目 那么\(S(x) = \sum\limits_{i=1}^n dist(i,x)^k = \sum\limits_{i=1}^n \sum\limits_ ...
- 内网Https 自签Https证书 配合Tomcat 实现内网Https详细图文
内网项目启用Https配置手册 软件需求: OpenSSL https://www.openssl.org/ 已经安装了Java Jdk环境 制作前的需求: 已经配置了Jdk环境变量 安装好OpenS ...