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

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

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

#include <algorithm>
#include <iostream>
using namespace std;
#include <vector>
int main() {
    int n, a1;
    cin >> n >> a1;
    vector<int> lb;
    lb.insert(lb.end(), a1);
    for (int i = 0; i < n - 1; i++) {
        int a, b;
        cin >> a >> b;
        if (find(lb.begin(), lb.end(),
                 a) == lb.end()) { //链表里没有a,在b后面插入a
            lb.insert(find(lb.begin(), lb.end(), b), a);
        }
    }
    int d;
    cin >> d;
    vector<int> lb1 = lb;
    for (int i = 0; i < lb.size(); i++) {
        lb1[i] = lb[lb.size() - i - 1];
    }
    //cout<<lb.size();
    vector<int> lb2;
    for (int i = 0; i < lb1.size(); i++) {
        if (lb1[i] != d) {
            lb2.insert(lb2.end(), lb1[i]);
        }
    }
    for (int i = 0; i < lb2.size(); i++) {
        cout<<lb2[i]<<" ";
    }
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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