题解 | #牛牛的单链表求和#
牛牛的单链表求和
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();
}
查看9道真题和解析