热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在链表中删除指定值的节点

在链表中删除指定值的节点题目描述给出一个链表和一个整数num,输出删除链表中节点值等于num的节点之后的链表。输入描述:第一行一个整数n

在链表中删除指定值的节点

题目描述

给出一个链表和一个整数 num,输出删除链表中节点值等于 num 的节点之后的链表。


输入描述:

第一行一个整数 n,n 表示单链表的节点数量。

第二行 n 个整数表示单链表的各个节点的值。

第三行一个整数 num。


输出描述:

在给定的函数中返回指定链表的头指针。


示例1

输入

4
1 2 3 4
3

输出

1 2 4

备注:

1≤n≤1061 \leq n \leq 10^61n106

−106≤num,val≤106-10^6 \leq num,val \leq 10^6106num,val106




题解:

正常的链表删除,不过有一个小技巧,创建一个哨兵节点,可以省很多事。


代码:

# include
using namespace std;struct list_node{int val;struct list_node * next;
};list_node * input_list()
{int val, n;scanf("%d", &n);list_node * phead &#61; new list_node();list_node * cur_pnode &#61; phead;for (int i &#61; 1; i <&#61; n; &#43;&#43;i) {scanf("%d", &val);if (i &#61;&#61; 1) {cur_pnode->val &#61; val;cur_pnode->next &#61; NULL;}else {list_node * new_pnode &#61; new list_node();new_pnode->val &#61; val;new_pnode->next &#61; NULL;cur_pnode->next &#61; new_pnode;cur_pnode &#61; new_pnode;}}return phead;
}list_node * remove_value(list_node * head, int num)
{//在下面完成代码list_node *dummy &#61; new list_node();dummy->next &#61; head;list_node *p &#61; head, *pre &#61; dummy;while (p) {if (p->val &#61;&#61; num) {pre->next &#61; p->next;delete p;p &#61; pre->next;} else {pre &#61; p;p &#61; p->next;}}return dummy->next;
}void print_list(list_node * head)
{while (head !&#61; NULL) {printf("%d ", head->val);head &#61; head->next;}puts("");
}int main ()
{list_node * head &#61; input_list();int num;scanf("%d", &num);list_node * new_head &#61; remove_value(head, num);print_list(new_head);return 0;
}

推荐阅读
  • 题目描述:孩子们围坐在一起,分享水果,场面温馨。然而,由于孩子们身高不同,排队时显得高低不齐。给定孩子们的身高序列,通过交换某些孩子的顺序,计算每次交换后的序列混乱度。 ... [详细]
  • 本文详细介绍了C++中常见的容器(如列表、向量、双端队列等)及其迭代器的实现方式,通过具体代码示例展示了如何使用这些容器和迭代器。 ... [详细]
  • 本文探讨了使用匈牙利算法解决二分图中的最大权匹配问题,并通过HDU1533题目实例进行详细解析。代码实现中包括了必要的数据结构定义、输入处理以及求解过程。 ... [详细]
  • 一个产品数组拼图|集合 2 (O(1)空间) ... [详细]
  • A题简单判断#includeusingnamespacestd;typedeflonglongll;intt;intmain(){cint;whil ... [详细]
  • 程序打印菱形 ... [详细]
  • VSCode中使用Clang-Format进行C/C++代码格式化配置
    本文介绍了如何在VSCode中配置Clang-Format以实现C/C++代码的自动格式化,包括安装必要的扩展、配置文件的创建以及常用设置的解释。建议阅读官方文档以获取更多详细信息。 ... [详细]
  • 打印给定范围内的所有完美方块 ... [详细]
  • 本文介绍了一种使用C语言编程的方法,通过用户输入一个int类型的整数,利用循环和数组统计出该整数的总位数以及每个数字出现的具体次数。 ... [详细]
  • 本文探讨了使用Lighttpd与FastCGI实现分布式部署的方法。通过在中心服务器上配置Lighttpd负责请求转发,同时在多个远程服务器上运行FastCGI进程来处理实际业务逻辑,从而提高系统的负载能力和响应速度。 ... [详细]
  • 题目概述:给定一个数组,计算其中所有连续子序列中平均值不低于给定值k的数量。通过将每个元素减去k并计算前缀和,问题转化为二维数点问题。此问题可以通过离线处理,利用树状数组来高效解决。 ... [详细]
  • C++编程基础:探索自定义数据类型
    本文继续深入C++编程的基础知识,重点讲解自定义数据类型的概念及其应用,包括枚举类型、结构体和联合体等。 ... [详细]
  • 本文介绍了一个使用C++编写的算法,用于从给定的字符串中找出最长的连续重复子串。例如,对于输入字符串“ababc”,算法将返回“ab”。文中不仅提供了详细的代码实现,还分析了算法的时间和空间复杂度。 ... [详细]
  • 本文详细介绍了Redis中对象的内部结构,包括数据类型、编码方式、最近访问时间(LRU)和引用计数等关键属性。通过这些属性,Redis能够高效地管理和优化内存使用。 ... [详细]
  • 本文探讨了如何在C语言中动态分配结构体数组,并在完成相关操作后正确地释放内存。同时,讨论了不同情况下内存分配与释放的最佳实践。 ... [详细]
author-avatar
CK92_474
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有