LeetCode 237:Delete Node in a Linked List
2015-12-11 23:11
543 查看
Write a function to delete a node (except the tail) in a singly linked list, given only access to that node.
Supposed the linked list is
the linked list should become
试在只给出待删除节点的情况下,编写一个能够删除单链表中除尾节点的任一节点的函数。
假设单链表为1->2->3->4,现在你想删除第三个即value为3的节点,那么在调用你的函数之后,单链表应该变成1->2->4。
好吧,一开始觉得这道题好坑爹,都不知道头指针让我怎么删!
百思不得其解之下,只好求助百度。。。果然还是度娘好使←_←
典型的“狸猫换太子”, 若要删除该节点,正常情况下,应该要知道该节点的前面节点的指针,但是由于单链表中没有头结点,所以无法追溯到该节点前面的那个节点,因此,这里采用了“移花接木”的方法。设该节点为B,下一个节点为C。那么,首先将B节点的内容替换为C节点的内容,然后,将C节点删除,这样就达到了我们的目的。
不过这个题还有一点让我感觉有点奇怪,因为我直接用
而非得把val和temp->next传递给node才可以
Supposed the linked list is
1 -> 2 -> 3 -> 4and you are given the third node with value
3,
the linked list should become
1 -> 2 -> 4after calling your function.
试在只给出待删除节点的情况下,编写一个能够删除单链表中除尾节点的任一节点的函数。
假设单链表为1->2->3->4,现在你想删除第三个即value为3的节点,那么在调用你的函数之后,单链表应该变成1->2->4。
好吧,一开始觉得这道题好坑爹,都不知道头指针让我怎么删!
百思不得其解之下,只好求助百度。。。果然还是度娘好使←_←
典型的“狸猫换太子”, 若要删除该节点,正常情况下,应该要知道该节点的前面节点的指针,但是由于单链表中没有头结点,所以无法追溯到该节点前面的那个节点,因此,这里采用了“移花接木”的方法。设该节点为B,下一个节点为C。那么,首先将B节点的内容替换为C节点的内容,然后,将C节点删除,这样就达到了我们的目的。
不过这个题还有一点让我感觉有点奇怪,因为我直接用
ListNode *temp=node->next; node=temp; delete temp;不行
而非得把val和temp->next传递给node才可以
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: void deleteNode(ListNode* node) { ListNode* temp=node->next; node->val=temp->val; node->next=temp->next; delete temp; } };
相关文章推荐
- leetcode Remove Nth Node From End of List
- node 学习笔记 - Modules 模块加载系统 (1)
- [转]为什么我要用 Node.js? 案例逐一介绍
- LeetCode:Remove Nth Node From End of List
- 安装nodejs时提示Leaving directory
- 创建Node Js应用
- inode
- Node.Js简介与安装
- nodejs模块——fs模块
- Permission denied: user=root, access=EXECUTE, inode="/tmp/hadoop-yarn":grid:supergroup:drwx------
- nodejs模块——Event模块
- LeetCode 222 Count Complete Tree Nodes
- node包管理器npm 学习笔记(5)
- Remove Nth Node From End of List
- Insert Node in a Binary Search Tree
- 简述CCNode和Sprite的渲染过程
- hadoop mkdir: Cannot create directory /usr. Name node is in safe mode.
- nodejs 操作文件(文件夹)
- NodeJS 基本操作
- Nodejs源码解析之module