有趣的面试题 1-1 单向链表
已知内存中存在一个单向链表,表示方法为 1 2 3 .... n
现在只给你一个 节点m , 只知道节点m一定在这个单向链表上
要求是删除节点m
不知道单向链表的起点在哪里
常规思路,是找到m的前一个节点 m-1,然后将 m-1 指向m的下一个数据 m+1 ,
但是这里的问题是, 这是一个单向链表,
根据m根本无法查到 m-1
所以要换一种思路思考
所谓的删除操作可以换一种方式来做,
知道m 那么就知道m+1 m+2....n
那么将m+1的值拷贝到 m ,将m的下一个元素指向m+2
那么在内容上就删除了m这个节点
当然这个删除是不完美的
他最大的难度是要开阔你的思路,不要老是局限于已经有的知识,
先尝试解决问题,再解决实际应用中引发的问题
PS1:如果存在外部数据指向m+1的地址 这个时候会有问题
PS2:如果正好是最后一个节点就over了
如果还有其他的问题 请大家补充