时间限制:1.000S 空间限制:128MB
题目描述
构建一个单向链表,链表中包含一组整数数据。输出链表中的所有元素。
要求:
1. 使用自定义的链表数据结构
2. 提供一个 linkedList 类来管理链表,包含构建链表和输出链表元素的方法
3. 在 main 函数中,创建一个包含一组整数数据的链表,然后调用链表的输出方法将所有元素打印出来
输入描述
包含多组测试数据,输入直到文件尾结束。
每组的第一行包含一个整数 n,表示需要构建的链表的长度。
接下来一行包含 n 个整数,表示链表中的元素。
输出描述
每组测试数据输出占一行。
按照顺序打印出链表中的元素,用空格隔开,最后一个元素后没有空格。
输入示例
5
1 2 3 4 5
6
3 4 5 6 7 8
输出示例
1 2 3 4 5
3 4 5 6 7 8
提示信息
数据范围:
1 <= n <= 1000;
代码示例
#include <iostream>
using namespace std;
//定义一个链表节点
struct ListNode {
int val;
ListNode *next;
ListNode(int x):val(x),next(nullptr){}
};
int main()
{
int n,val;
ListNode *dummyHead = new ListNode(0);//定义了虚拟头节点,dummyhead指向它的地址
while(cin >> n )
{
ListNode *cur = dummyHead;//指针cur指向虚拟头节点
for(int i=0;i<n;i++)
{
cin >> val;//输入链表节点的val值
ListNode *newNode =new ListNode(val);//根据val值构建一个新节点
cur -> next =newNode;//当前指针的下一个节点为新节点,从而将新节点接入链表
cur = cur -> next;//cur指向下一个节点,也就是新节点
}
//输出链表需要从头遍历
cur = dummyHead;
while (cur -> next !=NULL)
{
cout << cur ->next->val <<" ";//输出cur的next指针的val值
cur = cur -> next;//将cur指向下一个节点
}
cout << endl;
}
return 0;
}