求解为什么链表里只存进了数组的最后一个元素
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
struct Node
{
int data;
Node* link;
Node() { link = NULL; }
Node(int e, Node* next = NULL)
{
data = e;
link = next;
}
};
class LinkList
{
private:
Node* head;
public:
LinkList();
LinkList(int data[], int size);
void Output() const;
};
LinkList::LinkList() {
head = new Node;
}
LinkList::LinkList(int data[], int size) {
Node* p, * r;
head = p = new Node;
for (int i = 0; i < size; ++i) {
r = new Node(data[i]);
p->link = r;
}
}
void LinkList::Output() const{
Node* current = head->link;
while (current)
{
cout << current->data << " ";
current = current->link;
}
std::cout << std::endl;
}
const int N=10;
int main()
{
srand(time(0));
int data[N];
for (int i = 0; i < N; i++){
data[i] = rand() % 100;
}
for (int i = 0; i < N; ++i) {
cout << data[i] << ' ';
}
cout <<endl;
LinkList L(data, N);
L.Output();
return 0;
}
运行结果: