链表的相关知识
有关链表的知识
定义链表
struct Node{
int val;
Node* next;
Node(int _val) : val(_val),next(NULL){};
};
定义链表里面的内容,一般写在main函数里
Node* a=new Node(1);
Node* b=new Node(2);
Node* c=new Node(3);
Node* d=new Node(4);
Node* e=new Node(5);
定义当前链表的下一个,一般在定义完链表的后面
a->next=b;
b->next=c;
c->next=d;
d->next=e;
定义链表头
Node* head=a;
添加节点(添加到链表头)
Node* f=new Node(6);
f->next=a;
head=f;
删除链表内容 注:这里不是真正的删除,
而是让他不再链表里,但还存在,只是所有点都连接不到这个点
head->next=head->next->next;
链表的遍历方式
for(Node* i=head;i;i=i->next){
cout<<i->val<<endl;
}
源代码
#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* a=new Node(1);
Node* b=new Node(2);
Node* c=new Node(3);
Node* d=new Node(4);
Node* e=new Node(5);
//定义当前链表的下一个
a->next=b;
b->next=c;
c->next=d;
d->next=e;
//定义链表头
Node* head=a;
//添加节点(添加到链表头)
Node* f=new Node(6);
f->next=a;
head=f;
//删除链表内容 注:这里不是真正的删除,
// 而是让他不再链表里,但还存在,只是所有点都连接不到这个点
head->next=head->next->next;
//链表的遍历方式
for(Node* i=head;i;i=i->next){
cout<<i->val<<endl;
}
return 0;
}