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

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

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

#include<bits/stdc++.h>
using namespace std;
int main() {
    int n,head;
    cin>>n>>head;    //输入结点数和头结点的值
    forward_list<int> linklist;    //创建一个单向链表
    linklist.push_front(head);    //初始化头结点
    for(int i=1;i<n;i++) {
        int front,back;
        cin>>back>>front;
        auto it=find(linklist.begin(), linklist.end(), front);
        linklist.insert_after(it, back);    //逐个插入结点
    }
    int last;
    cin>>last;    //输入要删除的结点值
    linklist.remove(last);    //移除具有该值的节点
    for(auto it=linklist.begin();it!=linklist.end();it++) {
        cout<<*it<<" ";    //从头到尾输出链表的值
    }
    cout<<endl;
    return 0;
}
全部评论

相关推荐

50 5 评论
分享
牛客网
牛客企业服务