Data structure and Algorithm
  • 序言
  • 大O表示法
  • 递归
  • 线性表
    • 数组
    • 链表
    • 栈
    • 队列
  • 散列表
    • 哈希表
  • 树
    • 简介
    • 前缀树(字典树)
    • 二叉树
  • 图
    • 广度优先搜索
    • 狄克斯特拉算法
  • 算法-查找
    • 二分查找
    • K最近邻算法
    • 贪婪算法
    • 动态规划算法
  • 算法-排序
    • 交换类排序法
    • 插入类排序法
  • 算法-搜索
    • Untitled
  • 算法-复杂度分析
    • Untitled
  • 算法-字符串匹配
    • Untitled
    • Untitled
  • 算法-基本算法思想
    • 其他算法
Powered by GitBook
On this page
  • 概念解释
  • 链表的基本操作
  • 常见的队列代码面试题

Was this helpful?

  1. 线性表

链表

Previous数组Next栈

Last updated 6 years ago

Was this helpful?

概念解释

链表(Linked List)也是线性结构,它与数组看起来非常像,但是它们的内存分配方式、内部结构和插入删除操作方式都不一样。

链表是一系列节点组成的链,每一个节点保存了数据以及指向下一个节点的指针。链表头指针指向第一个节点,如果链表为空,则头指针为空或者为null。

链表可以用来实现文件系统、哈希表和邻接表。

下图展示了一个链表,它有3个节点:

链表分为2种:

  • 单向链表

  • 双向链表

链表的基本操作

  • InsertAtEnd — 在链表结尾插入元素

  • InsertAtHead — 在链表开头插入元素

  • Delete — 删除链表的指定元素

  • DeleteAtHead — 删除链表第一个元素

  • Search — 在链表中查询指定元素

  • isEmpty — 查询链表是否为空

常见的队列代码面试题

倒转1个链表
检查链表中是否存在循环
返回链表倒数第N个元素
移除链表中的重复元素