题解 | #牛牛的单链表求和#

牛牛的单链表求和

https://www.nowcoder.com/practice/a674715b6b3845aca0d5009bc27380b5

#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 print(){
            Node*temp=head;//创建节点遍历链表
            int sum=0;
            while(temp!=nullptr){
                sum+=temp->data;
                temp=temp->next;
            }
            cout<<sum;
        }
        void input(int n){
            append(n);
        }
    };


int main() {
    int n;//输入第一个数
    cin>>n;
    int arr[n];
    for(int i=0;i<n;i++){
        cin>>arr[i];//在数组中输入数
    }
    Linklist l1;//创建链表
    for(int i=0;i<n;i++){
         l1.input(arr[i]);//从数组第一个元素依次插入尾
    }
    l1.print();
}

全部评论

相关推荐

点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-03 17:30
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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