链表-链表介绍

140 阅读2分钟

链表-链表介绍

链表(Linked List) 由一系列节点组成,每个节点包含两部分,数据和指针。链表的节点是通过指针连接在一起,形成一个链式结构。

链表的类型

  1. 单链表:每个节点包含数据和指向下一个节点的引用。链表的头节点是链表的入口,尾节点的下一个指针为空(null)。访问链表中的元素需要从头节点开始沿着指针依次遍历。
  2. 双链表:每个节点包含数据、指向前一个节点的引用和指向下一个节点的引用。相比于单向链表,双向链表可以双向遍历,从头到尾或从尾到头都可以。
  3. 循环链表:尾节点的引用指向链表的头节点,形成一个循环。循环链表可以是单向的或双向的。

链表的存储方式

链表的存储方式是通过节点之间的引用来建立连接,而不像数组一样将元素按顺序存储在连续的内存位置上。

链表的定义

一个节点包含数据和指针。

// 单链表节点定义
class LinkNode {
    constructor(val, next) {
        this.val = val;
        this.next = next;
    }
}

链表的操作

  1. 插入:在链表中插入一个新节点。
  • 在链表的开头插入节点。
  • 在链表的末尾插入节点。
  • 在链表的指定位置插入节点。
  1. 删除:从链表中删除指定节点。
  • 删除链表的第一个节点。
  • 删除链表的最后一个节点。
  • 删除链表的指定位置的节点。
  1. 搜索:在链表中查找指定值的节点。 从链表的头节点开始遍历链表,逐个比较节点的值,直到找到匹配的节点或到达链表末尾。

  2. 遍历:按顺序访问链表中的每个节点。 从链表的头节点开始遍历,依次访问每个节点的数据。

  3. 获取链表长度。

  4. 反转链表:将链表中节点的顺序颠倒过来。 修改节点之间的指针引用,使链表从原来的末尾变为新的头部。

参考资料
github.com/youngyangya…