Java链表总结

本文详细介绍了Java中的链表,包括单向链表和双向链表的增删查改操作。讲解了单链表的增加、删除、修改和查找方法,并对比了单向链表与双向链表在插入和删除节点上的差异。
摘要由CSDN通过智能技术生成

目录

一、链表

 二、单向链表

三、单链表的增删查改

一、单链表的增加

二,单链表的删除

三、单链表的修改

四、单链表的查找

四、双向链表

一、增加节点

二、.删除结点

三、链表的修改

四、链表的查询


一、链表

理解:链表是一种物理存储结构上非连续存储结构,数据元素的逻辑顺序是通过链表中的引用链接次序实现的。
不像数组,相令邻的两个元素不仅逻辑上连续,物理上也连续。

可以把链表类比成火车,每一列火车由若干个车厢组成,每个车厢就是一个Node结点,由多个Node对象组成的大实体就是链表对象。火车的不同车厢之间,都是通过一个挂钩连接的,当这两个这厢脱钩后,这两个车厢就没有任何关系了。

 二、单向链表

每个节点只保存了下一个节点的地址,只能从头节点开始向后遍历,这种链表结构称为单向链表简称单链表。

1.链表定义节点

class Node{
    //存放结点的值
    int val;
    //存放下一结点地址
    Node next;
    public Node(int val) {
        this.val = val;
    }

    public Node(int val, Node next) {
        this.val = val;
        this.next = next;
    }
    
}

2.不带头的单链表的创建

public class SingleLinedList {
    //链表的头结点
    private Node head=null;
    //当前链表中Node节点的个数 = 有效数值的个数
    private int size=0;
    class Node{
        //存放结点的值
        int val;
        //存放下一结点地址
        Node next;
        public Node(int val) {
            this.val = val;
        }

        public Node(int val, Node next) {
            this.val = val;
            this.next = next;
        }

    }
}

单链表的遍历

public String toString(){
    //遍历链表
    String ret="";
    Node x=head;
    while (x!=null){
    ret+=x.val;
    ret+="->";
    x=x.next;
    }
    ret+="Null";
    return ret;
}

从当前头节点开始,依次取出每个节点值,然后通过next引用走到下一个节点,直到走到链表的末尾(next = null)
遍历过程中,能否直接使用head引用?

直接使用head引用,遍历一次链表之后,链表就丢了~~

三、单链表的增删查改

我们只需要调用单链表提供的增删改查方法即可,至于链表内部节点如何连接的,如何遍历的都不关心。

一、单链表的增加

1.头插

public void addFirst(int val){
    Node newNode=new Node(val);
    newNode.next = head;    // 直接将该结点node变成新的头结点
    head = newNode;
    size++;
}

2.下标插入

 public void addIndex(int index,int val) {
        // 1.若index位置非法的
        if(index<0 || index>size){
            System.out
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值