题解 | #牛牛的单向链表#
牛牛的单向链表
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; }