专栏首页和蔼的张星的图像处理专栏372. 在O(1)时间复杂度删除链表节点复制节点的值

372. 在O(1)时间复杂度删除链表节点复制节点的值

给定一个单链表中的一个等待被删除的节点(非表头或表尾)。请在在O(1)时间复杂度删除该链表节点。

Linked list is 1->2->3->4, and given node 3, delete the node in place 1->2->4

复制节点的值

删除节点一般的做法是找到要删除节点的前一个节点,然后把这个节点的next指针指向要删除的节点的下一个节点,一般都是这样做的,这个题要求O(1)的时间复杂度,显然是不允许遍历搜索的,而且给定的是节点的指针。 我们要删除这个节点,但是我们通过操作只能删除它的下一个节点,那我们能不能把下一个节点的数据拷贝过来到这个节点,然后把下个节点删除,这样就相当于把这个节点删除了 我怎么会想到这个方法呢?哎,刷题容易怀疑智商! 写起来就不是一般的简单了,题目中默认此节点不是表头或表尾,所以这种方法是完全可以的,如果是表尾的话就不好玩了!

  void deleteNode(ListNode * node) {
        node->val=node->next->val;
        node->next=node->next->next;
        // write your code here
    }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • node.js + mongodb 做项目的详解(二)

    当然还是准备工作了,在bootstrap官网下载好需要的东西了,怎么用官网已经写的很详细,在这就不细说了。 下载地址:http://v3.bootcss.com...

    笔阁
  • EOS区块链平台构建开发dapp环境的安装

    要安装xcode和homebrew代码。如果还没有安装的情况,先设置xcode和homebrew。

    笔阁
  • 用node.js进行微信公众平台的开发

      微信服务器就相当于一个转发服务器,终端(手机、Pad等)发起请求至微信服务器,微信服务器,然后将请求转发给自定义服务(这里就是我们的具体实现)。服务处理完毕...

    笔阁
  • 测试利器Mocha

    mocha 是一个功能丰富的javascript测试框架,可以运行在nodejs和浏览器环境,使异步测试变得简单有趣。mocha 串联运行测试,允许灵活和精确地...

    笔阁
  • 用Node操作Firebird

      Firebird是一个跨平台的关系数据库系统,目前能够运行在Windows、linux和各种Unix操作系统上,提供了大部分SQL-99标准的功能。它既能作...

    笔阁
  • Node.js 4.0的ES6新特性。

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量...

    笔阁
  • ECMAScript 6教程 (二) 对象和函数

    上面代码的方法一是直接用标识符作为属性名,方法二是用表达式作为属性名,这时要将表达式放在方括号之内。

    笔阁
  • ECMAScript 6教程 (一)

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出 原文连接,博客地址为 http://www.cnblogs.co...

    笔阁
  • Nodejs和Mongodb的连接器Mongoose

    今天我们将学习Mongoose,什么是Mongoose呢,它于MongoDB又是什么关系呢,它可以用来做什么呢,介绍Mongoose之前,我们先简单了解一下Mo...

    笔阁
  • node.js + mongodb 原

    想写博客很长时间了,因为一直身患懒癌,所以一直拖到了现在。markdown的语法也是刚刚学,试验一下效果 好了不说了,直接上干货了。 -------------...

    笔阁

扫码关注云+社区

领取腾讯云代金券