LeetCode:Delete Node in a Linked List
2015-10-12 23:41
567 查看
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
My Solution
给定的是要删除节点的指针。首先想到的是释放当前节点,并把前后两个节点连起来。但单向链表,没有上一个节点的指针。所以只好从当前要删除的节点开始往后遍历,用后一个节点的值覆盖前一个节点的值,最后把尾节点释放掉。
思路比较简单,代码就不解释了。
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.
My Solution
给定的是要删除节点的指针。首先想到的是释放当前节点,并把前后两个节点连起来。但单向链表,没有上一个节点的指针。所以只好从当前要删除的节点开始往后遍历,用后一个节点的值覆盖前一个节点的值,最后把尾节点释放掉。
思路比较简单,代码就不解释了。
/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ void deleteNode(struct ListNode* node) { struct ListNode *next = node->next; while(next->next != NULL) { node->val = next->val; node = next; next = node->next; } node->val = next->val; node->next = NULL; free(next); }
相关文章推荐
- Swap Nodes in Pairs
- nodejs API之QueryString
- nodejs API之URL
- [LeetCode]题解(python):025-Reverse Nodes in k-Group
- [LeetCode]题解(python):024-Swap Nodes in Pairs
- Leetcode92: Swap Nodes in Pairs
- leetcode Populating Next Right Pointers in Each Node
- lintcode 容易题:Insert Node in a Binary Search Tree 在二叉查找树中插入节点
- node.js安装和使用步骤-windows
- Remove Nth Node From End of List
- 自制工具:迅速打开一个Node 环境的Playground
- lintcode 容易题:Delete Node in the Middle of Singly Linked List 在O(1)时间复杂度删除链表节点
- nodejs入门实践
- js下firstElementChild firstChild 以及childNodes和children方法
- Nodejs入门学习——fs.renameSync出错
- ReactPHP── PHP版的Node.js
- nodejs更改文件夹下的文件名
- NodeJs 中的Crypto 加密模块
- android GMS认证之testNoDebuggable
- node.js (1)安装与环境配置