在O(1)时间复杂度删除链表节点
来源:互联网 发布:2015公安部上牌数据 编辑:程序博客网 时间:2024/06/05 19:59
题目:给定一个单链表中的一个等待被删除的节点(非表头或表尾)。请在在O(1)时间复杂度删除该链表节点。
思路:给定一个节点的地值node,想要将它删除,最好的方法就是下一个节点覆盖这个节点,这个节点的信息就不存在了,就相当于删掉了这个节点。如此一来node的下一个节点有了两个一摸一样的节点保存它的信息,在链表的next连接时,实际上不连接的是之前要被删的节点的下一个,但下一个节点的信息已经保存在了这个节点上。
代码:class Solution {
public:
/**
* @param node: a node in the list should be deleted
* @return: nothing
*/
void deleteNode(ListNode *node) {
// write your code here
node->val=node->next->val;
node->next=node->next->next;
}
感想:这个题很奇妙的一点就是将这个要被删除的节点变成了和它下一个节点一摸一样的节点,不连接的是它的下一个节点但并没有造成信息的丢失。这个代码很简短,但是很奇妙,从中我体会到了链表的美妙之处。
1 0
- 题目:在O(1)时间复杂度删除链表节点
- LintCode-在O(1)时间复杂度删除链表节点
- lintcode 在O(1)时间复杂度删除链表节点
- 在O(1)时间复杂度删除链表节点
- 在O(1)时间复杂度删除链表节点
- LintCode:在O(1)时间复杂度删除链表节点
- LintCode_372_在O(1)时间复杂度删除链表节点
- 在O(1)时间复杂度删除链表节点
- 在O(1)时间复杂度删除链表节点
- 在O(1)时间复杂度删除链表节点
- 在O(1)时间复杂度删除链表节点
- 在O(1)时间复杂度删除链表节点
- 在O(1)时间复杂度删除链表节点
- LintCode 在O(1)时间复杂度删除链表节点
- 在O(1)时间复杂度删除链表节点
- 在O(1)时间复杂度删除链表节点
- 在O(1)时间复杂度删除链表节点-LintCode
- 在O(1)时间复杂度删除链表节点
- 【Android眼中的IOS】IOS开发快速解析Json数据(仿Android解析流程)
- 20Demo01 一个基于HXFlow的Demo
- [LeetCode]453. Minimum Moves to Equal Array Elements
- MySQL主从复制-双主结构
- 【JavaScript】性能优化篇
- 在O(1)时间复杂度删除链表节点
- mysql基础总结 语法篇
- 交换两个整型变量的两种方式
- lotou详解一:基本概念
- 输出100-200之间的素数
- Android LibJpeg图片压缩
- 如何提高访问国外网站的速度
- apache-felix实例
- 关于在eclipse中 在工程,项目,文件,包,类前面出现红色感叹号的问题