题解 | #牛牛的链表添加节点#

牛牛的链表添加节点

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

#include <iomanip>
#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;
        }
    }
    //引用m作为插入的位置
    void input(int &m){
        int n;
        cin>>n>>m;
        int *a=new int[n];
        for(int i=0;i<n;i++){
            cin>>a[i];
            //调用尾插函数
            append(a[i]);
        }
    }
    //定义函数插入节点
    void charu(int &m){
        //创建节点遍历链表
        Node* temp=head;
        int i=0;
        //当temp落在插入节点前一个位置时停下
        while(i<m-1&&temp!=nullptr){
            temp=temp->next;
            i++;
        }
        if(temp!=nullptr){
            //创建新节点并将m的值赋给新节点
            Node* newnode=new Node(m);
            //把本来temp指向的下一个给新结点指向
            newnode->next=temp->next;
            //再把新节点被temp指向
            temp->next=newnode;
        }
    }
};
int main() {
    int m;
    Linkedlist l1;
    l1.input(m);
    l1.charu(m);
    l1.printlist();
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
今天 11:35
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-03 18:22
投了几百份简历,专业和方向完全对口,都已读不回。尝试改了一下学校,果然有奇效。
steelhead:这不是很正常嘛,BOSS好的是即便是你学院本可能都会和聊几句,牛客上学院本机会很少了
点赞 评论 收藏
分享
每晚夜里独自颤抖:这个在牛客不是老熟人了吗
点赞 评论 收藏
分享
龙珠传说:nb,公务员解约不需要支付违约金吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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