链表
链表的节点包括数据区和地址区(指向下一个节点)。
struct ListNode
{
int data;
ListNode *next;
ListNode(int x) :data(x), next(NULL){} //初始化
};
ListNode *head;
数据区:head->data
地址区:head->next
1)插入指定节点
从图1到图2:插入节点p
图1 原链表
图2 插入指定节点链表
p->next = head->next;
head->next = p;
2)删除指定数据
从图1到图2:删除节点p
图1 原链表
图2 删除指定节点链表
①定位到删除节点p的上一个节点head
head->next = head->next->next;
②不能定位到删除节点p的上一个节点head的情况
p->data = p->next->data;
p->next = p->next->next;
3)修改指定数据
修改节点p的data为a:
①
head->next->data = a
②
p->data = a;