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

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

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")

全部评论

相关推荐

11-24 11:23
门头沟学院 C++
点赞 评论 收藏
分享
死在JAVA的王小美:哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈,我也是,让我免了一轮,但是硬气拒绝了
点赞 评论 收藏
分享
Hello_WordN:咱就是说,除了生命其他都是小事,希望面试官平安,希望各位平时也多注意安全
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务