Delete Node in a Linked List
来源:互联网 发布:图像压缩算法动态规划 编辑:程序博客网 时间:2024/06/08 11:26
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 1 -> 2 -> 3 -> 4 and you are given the third node with value 3, the linked list should become 1 -> 2 -> 4 after calling your function.
思路:给一个链表中的节点,题目要求将这个节点在链表中删除。题目中并没有给出链表的头节点,就不能从头开始遍历,然后删除给定的节点。可以考虑将待删除的节点的后面一个节点值的复制当前待删除的节点中,依次进行。就可以达到删除节点的目的。
代码如下:
/** * 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 *p=node; ListNode *pre=NULL; while(p->next) { p->val=p->next->val; pre=p; p=p->next; } pre->next=NULL; return; }};或者是将当前待删除元素的值修改为其next元素的值,然后修改下next的链接,将待删除节点的next指向其next的next即可。
/** * 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 *tmp=node->next; node->val=tmp->val; node->next=tmp->next; delete tmp; return; }};
0 0
- leetcode: Delete Node in a Linked List
- LeetCode Delete Node in a Linked List
- Delete Node in a Linked List
- 【leetcode】Delete Node in a Linked List
- Delete Node in a Linked List
- Delete Node in a Linked List
- Leetcode: Delete Node in a Linked List
- 237 - Delete Node in a Linked List
- Delete Node in a Linked List
- [LeetCode]Delete Node in a Linked List
- Delete Node in a Linked List
- 【leetcode】Delete Node in a Linked List
- Delete Node in a Linked List
- 237 Delete Node in a Linked List
- Leetcode Delete Node in a Linked List
- LeetCode || Delete Node in a Linked List
- [LeetCode] Delete Node in a Linked List
- LeetCode237:Delete Node in a Linked List
- 【整理】jQuery知识点1
- Mongodb报错Insufficient free space for journal files和db Assertion failure isOk() src/mongo/db/pdfile.h
- Drupal 7 View Modes: Consistently themeing content across your site
- iOSCoreAnimation动画系列教程(二):CAKeyFrameAnimation【包会】
- ul+li实现类似table的自适应宽度布局
- Delete Node in a Linked List
- HTML5 Web Workers
- 【整理】jQuery知识点2
- 创建存储过程报错PLS-00410
- 在Xcode中使用Git进行源码版本控制
- 在Linux中使用线程
- Template 模式
- Git 学习(一)
- 感谢传智播客+C#.Net学习之旅