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了

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

  • 相关阅读:
    WebStorm2020.3.0及以下安装激活方法
    CSS随堂笔记【狂神说JAVA】
    HTML随堂笔记【狂神说JAVA】
    JAVA语言基础随堂笔记
    js 常用类和方法
    js 数组
    js 对象和函数
    js 基础语法
    JavaScript 简介
    PS基础
  • 原文地址:https://www.cnblogs.com/PurpleTide/p/1877632.html
Copyright © 2011-2022 走看看