LintCode-在O(1)时间复杂度删除链表节点
2017-03-27 22:57
295 查看
题目描述:.给定一个单链表中的一个等待被删除的节点(非表头或表尾)。请在在O(1)时间复杂度删除该链表节点。
样例
给定 1->2->3->4,和节点 3,删除 3 之后,链表应该变为1->2->4。
解题思路:先赋值后改变地址,先把该节点的下一个结点的数据赋值给该结点,然后再把指针指向下下个结点的地址,完成这两步之后,该结点就被下一结点覆盖了,完成了删除该结点的任务。
关键代码:void deleteNode(ListNode *node) {
// write your code here
node->val=node->next->val;
node->next=node->next->next;}
做题感想:刚开始想参考书上的删除算法写,后来发现了更简洁的算法,更容易理解。
样例
给定 1->2->3->4,和节点 3,删除 3 之后,链表应该变为1->2->4。
解题思路:先赋值后改变地址,先把该节点的下一个结点的数据赋值给该结点,然后再把指针指向下下个结点的地址,完成这两步之后,该结点就被下一结点覆盖了,完成了删除该结点的任务。
关键代码:void deleteNode(ListNode *node) {
// write your code here
node->val=node->next->val;
node->next=node->next->next;}
做题感想:刚开始想参考书上的删除算法写,后来发现了更简洁的算法,更容易理解。
相关文章推荐
- LintCode-剑指Offer-(372)在O(1)时间复杂度删除链表节点
- lintcode——在O(1)时间复杂度删除链表节点(链表)
- LintCode Delete Node in the Middle of Singly Linked List 在O(1)时间复杂度删除链表节点
- LintCode-372.在O(1)时间复杂度删除链表节点
- lintcode 容易题:Delete Node in the Middle of Singly Linked List 在O(1)时间复杂度删除链表节点
- lintcode 在O(1)时间复杂度删除链表节点
- LintCode解题笔记 - 在O(1)时间复杂度删除链表节点
- LintCode-在O(1)时间复杂度删除链表节点
- Lintcode 在O(1)时间复杂度删除链表节点
- LintCode Remove Nth Node From End of List 删除链表中倒数第n个节点
- lintCode-删除链表中倒数第n个节点
- 单链表中实现O(1)时间复杂度删除节点
- 在O(1)时间复杂度删除链表节点
- 在O(1)时间复杂度删除链表节点(LintCode)
- lintcode ----删除链表中倒数第n个节点
- 在O(1)时间复杂度删除链表节点
- lintcode-在O(1)时间复杂度删除链表节点-327
- [LintCode] 在O(1)时间复杂度删除链表节点
- 在O(1)时间复杂度删除链表节点
- 【面试题】在O(1)时间复杂度删除链表节点