链表基本概念
链表是由一系列节点组成,每个节点包含两个域,一个是数据域,数据域用来保存数据;一个是指针域,指针域保存下一个节点的地址。链表的内存是非连续的。
链表特点:
(1)链表在指定位置插入和删除不需要移动元素,只需要修改指针即可。
(2)查找效率相对于数组低一些。
(3)链表相对于数组而言多了指针域空间开销。
链表分为:静态链表、动态链表。
又细分为单向链表、双向链表、循环链表、单向循环链表、双向循环链表。
链表单个结点创建(包含使用构造函数创建)
struct ListNode {
int val;
ListNode *next;
ListNode() : val(0), next(nullptr) {}
ListNode(int x) : val(x), next(nullptr) {}
ListNode(int x, ListNode *next) : val(x), next(next) {}
};