在O(1)时间复杂度删除链表节点
2016-04-14 22:38
519 查看
给定一个单链表中的表头和一个等待被删除的节点(非表头或表尾)。
请在在O(1)时间复杂度删除该链表节点。并在删除该节点后,返回表头。
请在在O(1)时间复杂度删除该链表节点。并在删除该节点后,返回表头。
/** * Definition of ListNode * class ListNode { * public: * int val; * ListNode *next; * ListNode(int val) { * this->val = val; * this->next = NULL; * } * } */ class Solution { public: /** * @param node: a node in the list should be deleted * @return: nothing */ void deleteNode(ListNode *node) { // write your code here ListNode* p = node->next;//找出给定节点的下一个节点,复制到node节点 node->val = p->val; //删除p节点。O(1)时间复杂度 node->next = p->next; delete p; } };
相关文章推荐
- 0414复利计算6.0--结对
- 复利计算-结对2.0
- cf490C. Hacking Cypher
- HDU - 1015 Safecracker
- hdu 3033(分组背包)
- strcpy、memcpy、strncpy函数实现
- Aerospike系列:1:安装
- DMA技术
- 对css3属性 z-index的理解
- iOS SDWebImage清理缓存数据
- cf490B. Queue
- Makefile 编写(make命令编译)
- 第十一节 法律法规和标准规范
- 数据结构排序算法之选择排序
- RGB to Gray
- 求最大公约数算法
- 交换机access和trunk的一些小结
- java基本类型和包装器类
- Java操作Redis--Jedis
- SAP接口编程之 NCo3.0系列(03) : Meta-data和Container