LintCode_372 在O(1)时间复杂度删除链表节点
2024-10-08 00:43:17
题目
给定一个单链表中的表头和一个等待被删除的节点(非表头或表尾)。请在在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;
}
最新文章
- 4-iscsi
- IT培训行业揭秘(四)
- 使用intellij的svn时提示出错: Can't use Subversion command line client: svn.Errors found while svn working copies detection.
- 修改weblogic PermGen
- AXIOM解析XML 详细原理
- Android从入门到精通pdf+书源代码
- [Script]EBS里查看模块的版本、文件的版本信息【Z】
- Spring3.0 入门进阶(1):从配置文件装载Bean
- Django编写RESTful API(一):序列化
- DirectX:在graph自动连线中加入自定义filter(graph中遍历filter)
- Jvm 内存模型 —— GC
- 读 vue 源码一 (为什么this.message能够访问data里面的message)
- idea中使用github
- CSS的引入方式及CSS选择器
- HTML框架、列表、表格
- Shuffle(洗牌)
- jQuery在线引用地址(全)
- 【洛谷P2420】让我们异或吧
- MySQL子查询的优化
- Linux中断 - High level irq event handler