题解 | #从单向链表中删除指定值的节点# 自定义结构体实现

从单向链表中删除指定值的节点

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

#include <iostream>
using namespace std;

struct list_a {
    int node = 0;
    list_a* next = nullptr;
    list_a(int value, list_a* ne) : node(value), next(ne) {};
    list_a(int value) : node(value) {};
    list_a(list_a* ne) :  next(ne) {};
};

int main() {
    int n, he;
    cin >> n;
    cin >> he;
    auto head = new list_a(he);
    for (int i = 0; i < n - 1; i++) {
        int a, b;
        cin >> a >> b;
        list_a* tmp = head;
        // 寻找插入的节点
        while (tmp->node != b) {
            tmp = tmp->next;
        }
        // 进行插入操作
        list_a* tmp1 = tmp->next;
        tmp->next = new list_a(a);
        tmp->next->next = tmp1;
    }

    int tar;
    cin >> tar;
    list_a* tmp3 = head, *pre = head;
    if(head->node == tar){
        list_a* tmp = head;
        head = head->next;
    }else{
        while (tmp3->node != tar) {
            pre = tmp3;
            tmp3 = tmp3->next;
        }
    }

    list_a* tm = tmp3;
    pre->next = pre->next->next;
    delete tm;

    while(head != nullptr){
        cout << head->node << ' ';
        list_a* tmp = head;
        head = head->next;
        delete tmp;
    }
    return 0;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

king122:专业技能不要写这么多,熟悉和熟练你经不住问,排版有些难看,中间的空隙搞小一点,项目描述的话感觉是从课程中抄下来的,改一改吧,不然烂大街了,每个项目都写一两点,用什么技术实现了什么难点,然后再写一些数字上去像时间又花了90%这样,这样面试会多一些,如果觉得自己的项目还是不够用的话,我有几个大厂最近做过的实习项目,感兴趣的话可以看我简介中的项目地址
点赞 评论 收藏
分享
求offer的大角牛:不吃香菜
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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