在O(1)时间复杂度删除链表节点
2017-03-26 19:43
204 查看
给定一个单链表中的一个等待被删除的节点(非表头或表尾)。请在在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
if (node->next== NULL) {
node=NULL;
}
if (node->next!= NULL) {
node->val=(node->next)->val;
node->next= (node->next)->next;
}
}
};
做题感想:此题之中只有一个指针变量,刚开始的时候移动指针变量到指定值的时候老是出错,后来才发现可以这样写。
思路:从链表的第一个元素开始查找,找到特定值元素的节点,将它删除。
代码:/**
* 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
if (node->next== NULL) {
node=NULL;
}
if (node->next!= NULL) {
node->val=(node->next)->val;
node->next= (node->next)->next;
}
}
};
做题感想:此题之中只有一个指针变量,刚开始的时候移动指针变量到指定值的时候老是出错,后来才发现可以这样写。
相关文章推荐
- LintCode372: 在O(1)时间复杂度删除链表节点
- 在O(1)时间复杂度删除链表节点
- 【LintCode 简单】372. 在O(1)时间复杂度删除链表节点
- 在O(1)时间复杂度删除链表节点
- 在O(1)时间复杂度删除链表节点
- 在O(1)时间复杂度删除链表节点
- 在O(1)时间复杂度删除链表节点
- LintCode-剑指Offer-(372)在O(1)时间复杂度删除链表节点
- lintcode——在O(1)时间复杂度删除链表节点
- [lintcode]-链表 在O(1)时间复杂度删除链表节点
- 在O(1)时间复杂度删除链表节点(LintCode)
- 在O(1)时间复杂度删除链表节点
- 在O(1)时间复杂度删除链表节点 -LintCode
- 372在O(1)时间复杂度删除链表节点
- 题目:在O(1)时间复杂度删除链表节点
- 在O(1)时间复杂度删除链表节点(372)
- 372. 在O(1)时间复杂度删除链表节点--java
- lintcode-在O(1)时间复杂度删除链表节点-327
- 在O(1)时间复杂度删除链表节点