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

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

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

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

int main() {
    int n;//链表节点数
    int head;//头节点的值
    cin >> n >> head;
    list<int> mylist;
    mylist.push_back(head);//给链表头节点赋值
    for (int i = 1; i < n; ++i) {
        int pre, cur;
        cin >> cur >> pre;//pre前序值,前序值的下一个值
        //find函数底层实现
        auto it = mylist.begin();
        while (*it != pre && it != mylist.end()){
            it++;
        }    
        mylist.insert(++it,cur);//在++it之前位置insert 值为cur的节点
    }
    //输入最后一个数字的值为tail,删除链表中值为tail的节点
    int tail;
    cin >> tail;
    for (auto i:mylist) {
        if (i == tail) {
            mylist.remove(i);
            break;
        }
    }
    for (auto i:mylist) {
        cout << i << ' ';
    }
    return 0;
}

#23届找工作求助阵地##我的实习求职记录##零基础学习C++##14天坚持打卡#
全部评论

相关推荐

杨柳哥:这不是普通人,那这个钱的是天才
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
09-30 19:49
起名星人:蛮离谱的,直接要求转投销售
投递汇川技术等公司10个岗位
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务