题解 | #牛牛的单链表求和#
牛牛的单链表求和
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(); }