题解 | #从单向链表中删除指定值的节点#

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

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

按照规则将数据存入链表,然后删除对应的节点,最后输出链表。

#include <iostream>
#include <list>
using namespace std;

int main() {
    int n;
    int number;
    cin >> n;
    cin >> number;
    list<int> nums;
    int number_p;
    nums.push_back(number);
    for (int i = 0; i < n - 1; i++) {
        cin >> number;
        cin >> number_p;
        for (auto it = nums.begin(); it != nums.end(); it++) {
            if (*it == number_p) {
                nums.insert(++it, number);
                break;
            }
        }
    }
    cin >> number;
    for (auto it = nums.begin(); it != nums.end(); it++) {
        if (*it == number) {
            it = nums.erase(it);
            if (nums.empty()) {
                break;
            }
            cout << *it << ' ';
        } else {
            cout << *it << ' ';
        }
    }
    return 0;
}
// 64 位输出请用 printf("%lld")

中等(算法题解) 文章被收录于专栏

中等难度题目

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务