C语言怎么删除链表中的节点
发表于:2024-11-19 作者:千家信息网编辑
千家信息网最后更新 2024年11月19日,这篇文章主要讲解了"C语言怎么删除链表中的节点",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"C语言怎么删除链表中的节点"吧!请编写一个函数,使其可以删
千家信息网最后更新 2024年11月19日C语言怎么删除链表中的节点
这篇文章主要讲解了"C语言怎么删除链表中的节点",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"C语言怎么删除链表中的节点"吧!
请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。
现有一个链表 -- head = [4,5,1,9],它可以表示为:
4 -> 5 -> 1 -> 9
示例 1:
输入: head = [4,5,1,9], node = 5
输出: [4,1,9]
解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.
示例 2:
输入: head = [4,5,1,9], node = 1
输出: [4,5,9]
解释: 给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,该链表应变为 4 -> 5 -> 9.
说明:
链表至少包含两个节点。
链表中所有节点的值都是唯一的。
给定的节点为非末尾节点并且一定是链表中的一个有效节点。
不要从你的函数中返回任何结果。
上期的问题是:165,二叉搜索树的最近公共祖先
1public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
2 while ((root.val - p.val) * (root.val - q.val) > 0)
3 root = p.val < root.val ? root.left : root.right;
4 return root;
5}
解析:
这个很好理解,只要while循环为true,那么p和q要么都在root的左子树中,要么都在root的右子树中,所以继续往下找。当while中的循环为false的时候,那么p和q要么一个在root的左子树一个在root的右子树,要么p和q其中的一个是另一个的祖先节点(当while中条件语句的前面等于0的时候)。我们还可以改为递归的方式
1public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
2 return (root.val - p.val) * (root.val - q.val) <=0 ? root :
3 lowestCommonAncestor(p.val < root.val ? root.left : root.right, p, q);
4}
感谢各位的阅读,以上就是"C语言怎么删除链表中的节点"的内容了,经过本文的学习后,相信大家对C语言怎么删除链表中的节点这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
节点
语言
函数
要么
子树
学习
中值
内容
时候
末尾
示例
祖先
问题
应变
循环
解释
输入
输出
有效
三个
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
1.12服务器生存技巧
服务器反作弊
软件开发经验100例
计算机网络技术未来岗位
编程与游戏软件开发区别
电脑有哪些软件开发应用
cs1.5服务器架设
软件开发天马行空
我国4g网络技术发展趋势
禄劝创新软件开发特价
前端后台数据库怎么交互
私募软件开发面试
甘肃服务器续保价格
intel服务器
网络安全设备租赁价格
数据库设计概述模板
病历软件开发
数据库代码怎么打
网络安全宣传周主题升旗仪式
浦东新区网络技术开发
为什么链接服务器时出现问题
集中监控管理系统服务器启动不了
数据库安装哪个
网络安全意识培训讲师
禄劝创新软件开发特价
c 查询数据库表是否存在
国家网络安全工作要求
《网络安全法》的实施
服务器电脑硬盘怎么选择
外地网络安全监察是公安专业吗