定义:链表由一个一个的节点构成,只需要知道首节点的地址(首地址的指针),就可以知道整个链表的内容。
单链表
如何创建一个单链表
1.声明一个节点结构体
struct ListNode1{
int val;
ListNode1 *next;
ListNode1(int x) : val(x), next(nullptr) {}
};
//ListNode1(int x) : val(x), next(nullptr) {} 是一个构造函数,用于节点的初始化
//比如ListNode1(2); 创建了一个val为2的链表节点
2.创建一个头节点
ListNode *head = ListNode1(1);
3.添加其他节点
head->next = ListNode1(2);
head->next->next = ListNode1(3);
由于知道头节点的指针即可获得整个链表,可以理解为“将链表储存在了指向头节点的指针储存了整个链表”。
双链表
如何创建一个双链表
1.声明一个节点结构体
struct ListNode2{
int val;
ListNode2 *prev;
ListNode2 *next;
ListNode2(int x) : val(x), prev(nullptr), next(nullptr) {}
};
2.创建节点
ListNode2 *Node1 = ListNode2(1);
ListNode2 *Node2 = ListNode2(2);
ListNode2 *Node3 = ListNode2(3);
3. 连接节点
Node2->prev = Node1;
Node2->next = Node3;
环状链表
其实就是双链表的头节点的prev指针指向了尾节点,尾节点的next指针指向了头节点。
//在创建双链表的基础上再加上
Node1->prev = Node3;
Node3->next = Node1;
学习笔记持续更新,欢迎大家关注,一起进步~~