1.首先我们需要创建一个结构体并将其初始化:
struct Node { int val; Node* next; Node(int _val):val(_val),next(NULL) {} };
这里多讲一点这个 struct 内的变量都默认是 public: 型 而 class 则默认是 private : 型
2. 这里我们用 new 实现节点的创建并将其赋值两个操作:
Node* p=new Node(1); Node* q=new Node(2); Node* o=new Node(3);
这里的 Node* 可以将它换成 auto ,auto 可以寻找对应的结构类型,但这个对编译器有要求
所以不到万不得已不建议这样使用。
3. 完成插入操作,这里将 u 节点插入到头结点
Node* u=new Node(5); // 创建一个新的节点并赋值 u->next=head; // 让这个节点的指针域指向头结点 head=u; // 将头结点指向 u 然后开始遍历就可以了
4.删除操作
head->next=head->next->next;
5.具体代码如下:
#include<iostream> #include<cstring> #include<algorithm> using namespace std; struct Node { int val; Node* next; Node(int _val):val(_val),next(NULL) {} }; int main() { Node* p=new Node(1); Node* q=new Node(2); Node* o=new Node(3); p->next=q; q->next=o; Node* head=p; // 在头部插入一个新的节点一般有三步 Node* u=new Node(5); // 创建一个新的节点并赋值 u->next=head; // 让这个节点的指针域指向头结点 head=u; // 将头结点指向 u 然后开始遍历就可以了 while(head!=NULL) cout<<head->val<<"\n", head=head->next; // 删除节点必须知道它的上一节点位置 // 例如:我们删除 头结点 后面的节点 head=u; // 因为上面我们是让 head节点直接向后移动所以需要先将它前移 head->next=head->next->next; while(head!=NULL) cout<<head->val<<"\n", head=head->next; return 0; }