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

牛牛的双链表求和

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

#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 != nullptr) {
            cout << temp->data << " ";
            //节点向后走
            temp = temp->next;
        }
    }
    //int* &a表示a引用的是一个指向int型的指针使用这个引用可以对a修改
    void input(int* &a,int* &b,int &n){
        cin>>n;
        a=new int[n];
        b=new int [n];
        //输入数组中
        for(int i=0;i<n;i++){
            cin>>a[i];
        }
        //输入数组中
         for(int i=0;i<n;i++){
            cin>>b[i];
        }
    }
    //取数组的地址和数组中元素大小
    void puls(int* a,int* b,int n){
        for(int i=0;i<n;i++){
            b[i]+=a[i];
            append(b[i]);
        }
    }
};
int main() {
    int *a;
    int *b;
    int n;
      Linkedlist l1;
      l1.input(a,b,n);//输入数组a和b
      l1.puls(a, b, n);//元素相加并输入链表
      l1.printlist();//打印链表
      delete [] a;//动态释放a
      delete [] b;//动态释放b   
}

全部评论

相关推荐

06-12 16:00
天津大学 Java
牛客30236098...:腾讯坏事做尽,终面挂是最破防的 上次被挂了后我连简历都不刷了
点赞 评论 收藏
分享
06-07 19:59
门头沟学院 C++
补药卡我啊😭:都快15年前的了还在11新特性
你的简历改到第几版了
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-29 17:30
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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