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 ...
随机推荐
- js和jquery通过this获取html标签中的属性值[转藏]
<html> <head> <script type="text/javascript" src="jquery-1.10.2.min.js ...
- 【Python学习之五】函数
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 python3.6 Python不但能非常灵活地定义函数,而且本身内置 ...
- js arguments
偶然碰见一个有意思的题 <script> var length = 10; function fn() { console.log( this.length ); // 10 } var ...
- Oracle current redo.log出现坏块后的不完全恢复案例一则
1异常出现 8月30日下午2时左右,接同事电话,说数据库异常宕机了,现在启动不了. 2初步分析 我让现场把alert.log发过来,先看看是什么问题. 关于ORA-00353和ORA-0 ...
- centos7 intall nvidia driver
此教程是介绍于 CentOS 7 以上的 Linux 系统中安装 NVIDIA 显卡驱动和 CUDA Toolkit .此文中以 CentOS 7.4 64 bit 为例,显卡型号为 NVIDIA T ...
- PHP 获取星期
<?php function getWeek($time = 0) { $week_array=array('日', '一', '二', '三', '四', '五', '六'); //先定义一个 ...
- Qt去掉treeview项的焦点虚线
项目做到后期,进行局部美化的时候发现了问题,在treeview框选择状态下会有虚线. 其实,不仅是treeview,tableview,listview,乃至button在有焦点的情况下,都会出现虚线 ...
- python 之 Django框架(路由系统、include、命名URL和URL反向解析、命名空间模式)
12.36 Django的路由系统 基本格式: from django.conf.urls import url urlpatterns = [ url(正则表达式, views视图函数,参数,别名) ...
- HTML-点击Div读取本地文件内容
<!DOCTYPE html> <html> <div id="container" onclick="choosefile();" ...
- JavaScript中数组的key-value在对象中倒装的妙用
对于数组的去重.寻找指定元素的索引,通常我们都是通过遍历来解决,但是在某些应用场景下,将数组的value-key进行倒装,也即将value当做对象的key,key当做对象value,可以极大降低算法的 ...