博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LintCode_372 在O(1)时间复杂度删除链表节点
阅读量:6212 次
发布时间:2019-06-21

本文共 396 字,大约阅读时间需要 1 分钟。

题目

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

思路

因为O(1)内删除所以 不能从头节点去遍历找他的前驱节点

因为给的是待删除节点, 所以如果删除下一个节点可以在o(1)复杂度完成

所以 把当前节点覆盖成下一个节点

删除下一个节点即可

C++代码

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

  

转载于:https://www.cnblogs.com/Smallhui/p/5452142.html

你可能感兴趣的文章
AHK进阶之路
查看>>
Disksim下安装Flashsim
查看>>
靠谱推算不靠谱的问题
查看>>
学会sql数据库关系图
查看>>
刚体变换 相似变换 仿射变换 投影变换
查看>>
db2 cpu使用率高问题分析处理
查看>>
a标签,img标签,表格
查看>>
java基础 - 集合Collection
查看>>
常见端口。
查看>>
Ajax跨域请求保证同一个session的问题
查看>>
NOIP2018初赛游记
查看>>
再次求助。Source not found。问题
查看>>
你还在无休止的拼接html么?
查看>>
每天学点Linux-选取命令CUT和GREP
查看>>
zencart设置特价商品价格
查看>>
太白老师day6 1.代码块 2.is==id 3.小数据池
查看>>
Web项目测试流程总结
查看>>
flex布局
查看>>
第三方的 NET 数据库连接提供者,Lightswitch
查看>>
DOS命令行下mysql 基本命令
查看>>