网站开发实战课程,网站结构框架图怎么做,深圳做网站建设月薪多少,做视频网站 版权怎么解决题目链接 描述 输入一个单向链表和一个节点的值#xff0c;从单向链表中删除等于该值的节点#xff0c;删除后如果链表中无节点则返回空指针。
链表的值不能重复。
构造过程#xff0c;例如输入一行数据为: 6 2 1 2 3 2 5 1 4 5 7 2 2 则第一个参数6表示输入总共6个节点从单向链表中删除等于该值的节点删除后如果链表中无节点则返回空指针。
链表的值不能重复。
构造过程例如输入一行数据为: 6 2 1 2 3 2 5 1 4 5 7 2 2 则第一个参数6表示输入总共6个节点第二个参数2表示头节点值为2剩下的2个一组表示第2个节点值后面插入第1个节点值为以下表示: 1 2 表示为 2-1 链表为2-1
3 2表示为 2-3 链表为2-3-1
5 1表示为 1-5 链表为2-3-1-5
4 5表示为 5-4 链表为2-3-1-5-4
7 2表示为 2-7 链表为2-7-3-1-5-4
最后的链表的顺序为 2 7 3 1 5 4
最后一个参数为2表示要删掉节点为2的值 删除 结点 2
则结果为 7 3 1 5 4
数据范围链表长度满足 1≤n≤1000 节点中的值满足 0≤val≤10000
测试用例保证输入合法
输入描述 输入一行有以下4个部分 1 输入链表结点个数 2 输入头结点的值 3 按照格式插入各个结点 4 输入要删除的结点的值
输出描述 输出一行 输出删除结点后的序列每个数后都要加空格
示例1 输入 5 2 3 2 4 3 5 2 1 4 3
输出 2 5 4 1
说明 形成的链表为2-5-3-4-1 删掉节点3返回的就是2-5-4-1 示例2 输入 6 2 1 2 3 2 5 1 4 5 7 2 2
输出 7 3 1 5 4
solution常规链表操作套用STL即可
#include iostream
#include list
#include algorithm
using namespace std;int main() {int n, head, x, y;cin n head;n--;listint lst;lst.push_back(head);while (n--){cin x y;for (auto it(lst.begin()); it ! lst.end(); it){if (*it y){lst.insert(it, x);break;}}}cin n;for (auto it(lst.begin()); it !lst.end(); it) {if (*it n){lst.erase(it);break;}}for (auto it(lst.begin()); it !lst.end(); it) {cout *it ;}return 0;
}
// 64 位输出请用 printf(%lld)