【数据结构】线性表----链表(LinkedList)

本文详细介绍了链表的概念及其优势,包括链表的创建过程,链表头结点的作用,以及链表的两种主要类型:单向链表和双向链表。此外,还探讨了带有傀儡节点和无环链表的特点。文章通过实例讲解了如何遍历链表,获取链表的长度,以及检查链表中是否存在特定元素,强调了空指针和解引用的操作要点。
摘要由CSDN通过智能技术生成

顺序表:处在连续的内存空间
链表:处在不连续的内存空间上
链表优点:解决顺序表的搬运,增加或者删除操作
O(N)

一、 链表创建

在这里插入图片描述
结点点中保存元素的值和下一个结点的位置。最后一个节点的next为空

1.1链表创建的代码

创建Node类

public class Node {
   
   //使用Node表示链表的结点
    public int val; //保存我们的元素
    public Node next=null;//保存下一个结点的引用,其尾结点 next==null;
    public Node(int val) {
   
        this.val = val;
    }
    @Override
    public String toString() {
   
        return "["+this.val+"]";
    } 



}

创建Main类

public class Main {
   
  public static Node creteList1(){
   
      Node a =new Node(1);
      Node b=new Node(2);
      Node c =new Node(3);
      Node d =new Node(4);
      a.next=b;
      b.next=c;
      c.next=d;
      d.next=null;
      return a;
  }


    public static void main(String[] args) {
   
        Node head =creteList1();
        System.out.println(head.val);


    }

1.2 链表的头结点(head)

通常情况下,使用头结点代替整个链表。只要知道头节点,就可以获取到链表的所有元素

1.3链表创建的图示

(下面这些存在在栈中&#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值