题解 | #从单向链表中删除指定值的节点#
从单向链表中删除指定值的节点
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天坚持打卡#
