链表和数组的区别

数组需要一块连续的内存空间来存储,对内存的要求比较高。如果我们申请一个100MB大小的数组,当内存中没有连续的、足够大的存储空间时,即便内存的剩余总可用空间大于100MB,仍然会申请失败。
而链表恰恰相反,它并不需要一块连续的内存空间,它通过“指针”将一组零散的内存块串联起来使用,所以如果我们申请的是100MB大小的链表,根本不会有问 题。
image.png

3种最常见的链表结构

单链表

image.png

插入、删除操作

image.png

循环链表

image.png

双向链表

image.png

双向循环链表

image.png

链表VS数组性能比拼

image.png