在O(1)时间复杂度删除链表节点
来源:互联网 发布:淘宝能买到呼死你吗 编辑:程序博客网 时间:2024/06/13 00:56
描述
给定一个单链表中的一个等待被删除的节点(非表头或表尾)。请在在O(1)时间复杂度删除该链表节点。
样例
给定 1->2->3->4,和节点 3,删除 3 之后,链表应该变为 1->2->4。
思考
- 因为是 0(1) 的复杂度,所以无法通过遍历完成,但是删除节点肯定是需要该节点的前指针,所以我们先把后继结点的值复制到该节点,删除后继结点
代码
// By Lentitude/** * 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 // 由于是 0(1) 复杂度 if (node == NULL) return; ListNode *last = node->next; node->val = last->val; node->next = last->next; delete last; }};
0 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)时间复杂度删除链表节点
- leetcode 409. Longest Palindrome
- 【CSS】4.选择器
- mybatis-generator
- 【原创】基于FPGA的数码管按键显示(two_key)
- Centos6.8中kdump的设置问题
- 在O(1)时间复杂度删除链表节点
- RabbitMQ中的Exchange Types
- 126篇殿堂级深度学习论文分类整理 从入门到应用(上)
- 3.Scala中的函数
- Java多线程探究-读写锁ReentrantReadWriteLock
- Python基础语法
- 点击按钮实现缩放动画
- Redis通用命令
- 宽度优先搜索