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

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

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

#include <iostream>
#include <list>

using namespace std;

int main() {
    int n;
    cin >> n;
    list<int> lst;
    int a;
    int b;
    cin >> a;
    lst.push_back(a);
    for (int i = 2; i <= n; ++i) {
        scanf("%d%d", &a, &b);
        auto it = lst.begin();
        auto ed = lst.end();
        while (it != ed && *it != b) ++it;
        // *it == b
        it++;
        lst.insert(it, a);
    }
    int k;
    cin >> k;
    auto it = lst.begin();
    while (it != lst.end() && *it != k)  it++;
    lst.erase(it);
    // 输出最终结果
    for (auto elem : lst)
        cout << elem << ' ';
    cout << endl;

    return 0;
}

全部评论

相关推荐

醉蟀:你不干有的是人干
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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