数据结构
定义
struct ListNode {
int val;//可以加任意数量任意类型的数据
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}//构造器
};
创建
ListNode* n=new ListNode(1);//先创建一个开头节点,来记录起始地址
ListNode* t =n;//在定义一个移动指针,来不断往后移动赋值
int m;
cin >> m;//输入要在后面加多少节链表
while (m--) {
int i;
cin >> i;
t->next = new ListNode(i);//用new 来创建一个链表,放回该地址,在赋值给t的next指针
t = t->next;//再让t指向t的next指针,这样t就直接指向上面new出来的地址啦
}
不懂的同学还是看下图吧
遍历
while (n != NULL) {
cout << (*n).val;
n = n->next;
}
和上面图的情况基本一致,只不过是从n—这个开头来遍历的,当然,你想从那个地方开始遍历都可以
删除
t = n;
for (int i = 0; i < 3; i++) {//将t遍历到n的后3个节
t = t->next;
}
n->next = t;//让n->next直接指向t,就等于消灭了n和t之间的节,也就是第2,第3节