zoukankan      html  css  js  c++  java
  • 有趣的面试题 11 单向链表

    已知内存中存在一个单向链表,表示方法为  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了

    如果还有其他的问题 请大家补充

  • 相关阅读:
    hph 缓存机制
    递归调用 和 迭代
    多维数组排序
    php curl操作
    JavaScript基本数据类型
    JavaScript基础
    CSS基础布局
    CSS基础样式
    CSS选择器
    CSS3基础
  • 原文地址:https://www.cnblogs.com/PurpleTide/p/1877632.html
Copyright © 2011-2022 走看看