[LintCode]372.在O(1)时间复杂度删除链表节点
来源:互联网 发布:mac上的安卓模拟器 编辑:程序博客网 时间:2024/06/10 13:36
给定一个单链表中的一个等待被删除的节点(非表头或表尾)。请在在O(1)时间复杂度删除该链表节点。
样例 Linked list is
1->2->3->4
, and given node 3
, delete the node in place 1->2->4
思路:关于单链表的删除,通常先从链表的头节点开始顺序找到被删节点的前驱节点,然后再删除节点,主要时间耗费在查找操作上,时间复杂度为O(n);
其实,也可以通过删除节点的后继节点来实现,实质就是将其后继节点的值赋予自身,然后删除后继节点,使得时间复杂度为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) { ListNode *p=node->next; node->val=node->next->val; node->next=p->next; delete p; }};
阅读全文
1 0
- LintCode-在O(1)时间复杂度删除链表节点
- lintcode 在O(1)时间复杂度删除链表节点
- LintCode:在O(1)时间复杂度删除链表节点
- LintCode 在O(1)时间复杂度删除链表节点
- 在O(1)时间复杂度删除链表节点-LintCode
- LintCode-在O(1)时间复杂度删除链表节点
- Lintcode 在O(1)时间复杂度删除链表节点
- LintCode 在O(1)时间复杂度删除链表节点
- 在O(1)时间复杂度删除链表节点 -LintCode
- Lintcode 372.在O(1)时间复杂度里删除节点
- [LintCode]372.在O(1)时间复杂度删除链表节点
- LintCode解题笔记 - 在O(1)时间复杂度删除链表节点
- lintcode-在O(1)时间复杂度删除链表节点-327
- 在O(1)时间复杂度删除链表节点(LintCode)
- LintCode-剑指Offer-(372)在O(1)时间复杂度删除链表节点
- lintCode(372)——在O(1)时间复杂度删除链表节点
- lintcode在O(1)时间复杂度删除该链表节点。
- lintcode——在O(1)时间复杂度删除链表节点
- Python远程执行Linux命令
- python的Django框架应用(2)
- iTOP4412 安装NFS服务器
- Android Wi-Fi 四次握手简介
- 大数据和空间限制问题
- [LintCode]372.在O(1)时间复杂度删除链表节点
- Yocto 支持从sysvinit 到 systemd
- Bookshelf 2 -- 动态规划01背包稍作改变
- HDU 3333 Turing Tree (离线线段树,经典)
- Python_matlab_01
- 第一次发表博客
- 冒泡事件
- 制作jffs2根文件系统
- 模仿ofo小黄人眼睛跟随手机移动