关于递归删除链表结点时为什么不会出现断链问题
void delteX(LinkList &L,int x)
{LNode *p;if(L == NULL){return ;}if(L -> data == x){p = L;L = L -> next;free(p);delteX(L,x);}else{delteX(L -> next,x);}
}
查了很多资料 因为是引用传值,所以在调用deleteX(L -> next,x)的时候,传入的是L -> next的地址 所以这个时候传入L = L -> next以后 就相当于在上一层的L L -> next = L -> next ->next 作个替换 相当于一个等价替换 所以避免了需要寻找前驱结点的问题
关于递归删除链表结点时为什么不会出现断链问题相关推荐
- [剑指offer]面试题13:在O(1)时间删除链表结点
面试题13:在O(1)时间删除链表结点 题目:给定单向链表的头指针和一个结点指针,定义一个函数在 O(1)时间删除该结点.链表结点与函数的定义如下: struct ListNode {int valu ...
- 关于递归删除链表节点为什么不会断链问题解释
问题的由来: 当你第一次实现用递归实现链表删除功能的时候,是否有一丝丝的考虑过.这个问题呢?为什么对于非递归版本的删除必须要知道当前要删除节点的前驱,而需要对其前驱节点的next域指针进行修改. ...
- 【剑指offer-Java版】13O(1)时间删除链表结点
O(1)时间删除链表结点 前提是调用者知道要删除的结点的指针,而不是要删除结点的值 不过此类删除问题,当然是存在各种边界条件了: 1) 链表中只有一个结点 - 删除唯一的一个 2) 要删除的结点是最后 ...
- 《剑指offer》第十八题(在O(1)时间删除链表结点)
// 面试题18(一):在O(1)时间删除链表结点 // 题目:给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该 // 结点. #include <iostream> ...
- 建信01. 间隔删除链表结点
建信01. 间隔删除链表结点 给你一个链表的头结点 head,每隔一个结点删除另一个结点(要求保留头结点). 请返回最终链表的头结点. 示例 1: 输入:head = [1,2,3,4] 输出: [1 ...
- 剑指offer--在O(1)时间内删除链表结点
记录来自<剑指offer>上的算法题. 题目如下: 给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点. 结点定义如下: struct ListNode{int m_ ...
- 关于在递归中删除链表结点不会导致链表断链的理解
题目来自王道书:设计一个递归算法,删除不带头结点的单链表L中所有值为x的结点. 这道题在开始看的时候是觉得很简单的,判断是否等于x,然后在L->next进行递归就是了,但是当我看 ...
- 程序员面试题精选100题(33)-在O(1)时间删除链表结点[数据结构]
题目:给定链表的头指针和一个结点指针,在O(1)时间删除该结点.链表结点的定义如下: struct ListNode {int m_nKey;ListNode* m_pNext; }; 函数的声明如下 ...
- 在O(1)时间删除链表结点
删除结点的操作我们经常碰到,比如一个链表A->B->C->D->E->F->G.如果我们要删除结点E,那么我们只需要让结点D的指针指向结点F即可,但是我们现在只给出 ...
最新文章
- 声称代码会开源却迟迟没更新!网友等了好几个月,最终一怒之下把作者挂网上......
- java 字符串原子变量,如何在java中提供原子读/写2个变量?
- BZOJ2938:[POI2000] 病毒
- 斑马打印机客户端GET和POST,以及后端两种打印方式。
- 不会点SQLite,都不好意思说自己是开发的
- idea 建nodejs 项目_三种方法带你新建SpringBoot项目
- html绘制静态图表,怎样用JavaScript和HTML5 Canvas绘制图表
- ❤️Spring注入集合❤️(建议收藏)
- mysql行级锁unique_MySQL行级锁,表级锁,页级锁详解
- php 读取excel表数据
- window.dialogArguments 使用问题
- VS2017 社区版 许可证过期
- php底部漂浮广告位代码,网站顶部底部(上下)悬浮(漂浮)广告位代码
- iTunes更改备份路径
- 挑战全网目前最全python例子(附源码),独此一家,经典值得收藏!!!(五):Python绘图,Python实战
- 大众车机天宝187A Hack笔记
- Linux初识及常用命令
- 迅为4418核心板应用于智能访客机方案
- 新版标准日本语中级_第十八课
- VMware安装Centos7和卸载超详细过程(图文)
热门文章
- oracle 70个常用函数
- 电脑预装Office2016打开Word时点击保存弹出“word无法启动转换器RECOVR32.CNV”对话框问题的修复方法
- mininet和ryu简单实现自定义topo
- C++【STL】【string类的使用】
- 对文件进行哈夫曼编码压缩与译码的C++实现 以及压缩率计算 ——HIT杨朔
- monkey的基本操作命令
- 数据库字符集utf8和utf8mb4的详细区别
- 特殊的Excel填充序号技巧,总有一种你会遇到【特别实用,赶紧收藏】
- Vue详细介绍及使用
- php 微信朋友圈 更新时间,微信朋友圈可见天数怎么设置