题解 | #牛牛的单向链表#

牛牛的单向链表

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;
}

全部评论

相关推荐

09-12 11:55
已编辑
湖南工商大学 Java
那一天的Java_J...:这种一堆问题的,别去
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务