题解 | #牛牛的单向链表#
牛牛的单向链表
https://www.nowcoder.com/practice/95559da7e19c4241b6fa52d997a008c4
#include <iostream>
using namespace std;
class Node{//创建节点
public:
int data;
Node* next;//创建指向下一个节点的指针
Node(int val){
data=val;
next=nullptr;//初始化指针为空
}
};
class Linkedlist{
public:
//创建头节点初始化为空
Node* head;
Linkedlist(){
head=nullptr;
}
//尾插法
void append(int val){
Node* newnode=new Node(val);
//如果头节点为空,设置新节点为头节点
if(head==nullptr){
head=newnode;
return;
}
Node* temp=head;//把头节点赋给temp
//遍历找到最后节点
while(temp->next!=nullptr){
//把后一个的指向赋给temp
temp=temp->next;
}
//把新节点链接到末尾
temp->next=newnode;
}
//打印链表
void printlist(){
Node* temp=head;
//遍历链表
while(temp->next!=nullptr){
cout<<temp->data<<" ";
//节点向后走
temp=temp->next;
}
}
//用户输入数据
void input(){
int n,m;//前者为输入的数量,后者为输入的数
cin>>n;
for(int i=n;i>=0;i--){
cin>>m;
append(m);//调用尾插函数
}
}
};
int main() {
Linkedlist list;//创建链表对象
list.input();//用户输入
list.printlist();//打印链表
return 0;
}