以下为代码:
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
struct Node {
int data;
Node *next;
};
struct List {
int length;
Node *head;
};
void addNode(List *lis,int val) {
Node* currentp = new Node;
currentp->data = val;
currentp->next = NULL;
if (lis->head == NULL) {//如果插入的结点是第一个结点
lis->head = currentp;
lis->head->next = NULL;
lis->length = 1;
}
else {//尾插法
Node* p = lis->head;
while (p->next != NULL) p = p->next;//报错
p->next = currentp;
p->next->next = NULL;
lis->length++;
}
}
int main() {
int n;
cin >> n;
List* lis = new List;
//初始化,这里加上就可以了
//lis->head = NULL;
//lis->length = 0;
for (int i = 0; i < n; i++) {
int a;
cin >> a;
addNode(lis, a);
}
Node* p = lis->head;
while (p) {
cout << p->data << ' ';
p = p->next;
}
return 0;
}
报错:
原因:
在main函数中我们初始的list只是new了,但是没有初始化
版权声明:本文为qq_16488989原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。