本文链表以实际编程应用为主,不涉及理论。
链表定义
链表的节点定义一般使用结构体
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) {}
};
链表初始化
可以使用函数初始化
ListNode create_ListNode(){
ListNode *head;
head = new ListNode();//头结点为空的单节点链表
return head;
}
也可以直接在函数中初始化(使用上面函数内一二行代码即可),但是一般为了代码的可读性,还是使用函数会更好一点
创建节点
ListNode *temp;
temp = new ListNode(1);
head->next=temp;
节点插入删除
删除第二个节点
ListNode *temp_head=head;
temp_head->next=temp_head->next->next;
插入节点
在头节点后插入一个节点
ListNode *temp_head=head;
ListNode *temp;
temp = new ListNode(1);
temp->next=temp_head->next;
temp_head->next=temp;