删除不知道头结点的单链表中的p指针所指的值
来源:互联网 发布:linux if语句多个条件 编辑:程序博客网 时间:2024/05/21 17:06
解题思路:
一般情况下要删除指针P所指的节点就必须先从头结点开始遍历整个单链表直到找到P节点的前一个节点然后再怎么操作这大家都是知道的,这不是我的重点,所以就不写了!
但是遍历整个单链表是有条件的,必须知道头结点,平均情况算法时间复杂度为n/2 ,与题目要求不相符合。
因此我们发现本题并不能通过遍历俩实现,所以就死了这条心。那么究竟该用什么方法呢?历史书上的狸猫换太子大家并不陌生,下面我来说明这算法中的“狸猫换太子”。我们可以把p所指节点的下一个节点的值赋值给P所指的节点,因此就就可以通过删除下一个节点而达到目的!具体操作就不用多说了,思想最重要,其余的都是浮云!
总结:在一些问题中通过常规思维我们并不能达到目的,因此平时思考的时候除了通过最常规的思维外想想还能不能通过反常规的思维实现,说不定以后工作当中就会出现这样的问题。举个例子:把变量a,b的值交换:90%的人会借助一个变量暂存其中一个的值:实现如下:
但是我们如果不借助变量怎么实现呢?如下:
一下就可以看出来:如果自己觉得不看不出来,就写个代码就可以了。
阅读全文
0 0
- 删除不知道头结点的单链表中的p指针所指的值
- 在一个无头指针的单链表中,删除指针p所指向的结点
- 单链表之在不知道头指针的情况下删除指定结点
- 无头节点的单循环链表中删除指针s所指结点的前驱结点
- 有一个单项的链表,在没有头结点的情况下,只知道有一个指向结点B的指针p,假设这个结点B不是尾结点,删除该节点B。
- 单链表的头结点和头指针
- 已知指向节点p的指针,如何删除该节点(不知道链表头)
- 8、一个单链表,不给头指针,只给出当前结点,删除该结点。
- 释放掉指针P所指向的内存空间,继续读取指针P的值会报什么错
- 有两个双向循环链表A,B,知道其头指针为:pHeadA,pHeadB,请写一函数将两链表中data值相同的结点删除
- 雅虎面试题─有两个双向循环链表A,B,知道其头指针为:pHeadA,pHeadB,请写一函数将两链表中data值相同的结点删除
- 有两个双向循环链表A,B,知道其头指针为:pHeadA,pHeadB,请写一函数将两链表中data值相同的结点删除
- 有两个双向循环链表A,B,知道其头指针为:pHeadA,pHeadB,请写一函数将两链表中data值相同的结点删除。
- 有两个双向循环链表A,B,知道其头指针为:pHeadA,pHeadB,请写一函数将两链表中data值相同的结点删除
- 有两个双向循环链表A,B,知道其头指针为:pHeadA,pHeadB,请写一函数将两链表中data值相同的结点删除
- 没有头结点的单链表如何删除结点
- (指针)*p++ 自增p 还是p 所指向的变量?
- 数据结构——单链表的头指针、头结点…
- ORACLE Scheduler特性(4)创建和管理Schedule
- DPDK-Ring 结构学习 RING LIBRARY
- E
- oracle创建数据库、表空间、用户并授权
- linux下修改mysql数据库配置,解决表名区分大小写问题
- 删除不知道头结点的单链表中的p指针所指的值
- root 启动 fpm
- ZigBee自组网技术为什么没有取得预期的成功
- 用Swoole快速搭建一个推送服务器
- 历时2年《爱上Android》出版了
- spring之IOC
- 史上最全电子产品接口知识大全(含实物图40种,收藏)
- Windows环境下安装python以及sublime IDE环境配置
- 数据库系统原理之思维导图初步理解