Leetcode刷题14-237.删除链表中的节点(C++)
2019-03-06 20:25
309 查看
题目来源:链接: [https://leetcode-cn.com/problems/delete-node-in-a-linked-list/solution/].
237.删除链表中的节点
1.问题描述
请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。
现有一个链表 – head = [4,5,1,9],它可以表示为:
示例 1:
输入: head = [4,5,1,9], node = 5 输出: [4,1,9] 解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.
示例2 :
输入: head = [4,5,1,9], node = 1 输出: [4,5,9] 解释: 给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,该链表应变为 4 -> 5 -> 9.
注意:
1. 链表至少包含两个节点。 2. 链表中所有节点的值都是唯一的。 3. 给定的节点为非末尾节点并且一定是链表中的一个有效节点。 4. 不要从你的函数中返回任何结果。
2.我的解决方案
一开始没有理解题意,找不到要删除的结点的上一个next。
看了官方的参考答案才明白,秒啊~
3.官方代码
简单的说就是 把要删除的结点 的 下一个结点 里的值赋值给 要删除的结点,然后让删除结点指向 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) { node->val = node->next->val; node->next = node->next->next; } };
4.我从这题中收获了哪些东西
要灵活运用 啊,还是做的太少啊
2019/3/6 胡云层 于南京 14
相关文章推荐
- [LeetCode] 237. Delete Node in a Linked List 删除链表的节点
- LeetCode 237. Delete Node in a Linked List(删除链表中的一个节点)
- leetcode_[python/C++]_19. Remove Nth Node From End of List(删除链表末第n个节点)
- LeetCode 237. Delete Node in a Linked List - 删除链表中的一个节点
- leetcode 237. Delete Node in a Linked List(删除链表中的特定节点)
- [C++]LeetCode 19: Remove Nth Node From End of List(删除链表中倒数第n个节点)
- [LeetCode-237] Delete Node in a Linked List(删除链表中节点)
- C/C++ | 28-20 写出程序删除链表中的所有节点
- Leetcode做题日记:19. 删除链表的倒数第N个节点(PYTHON)
- LeetCode237_Delete Node in a Linked List(删除链表中的节点) Java题解
- [LeetCode] Delete Node in a Linked List 删除链表的节点
- C/C++删除单向链表全部匹配节点
- LeetCode 237 Delete Node in a Linked List(在链表中删除节点)
- [LeetCode]78. Remove Nth Node From end of List删除链表中倒数第N个节点
- 【LeetCode题解】237_删除链表中的节点
- c++基础之插入和删除链表节点
- 174. 删除链表中倒数第n个节点 (remove-nth-node-from-end-of-list)(c++)----lintcode面试题之链表
- LeetCode--Delete Node in a Linked List(删除链表中的节点)Python
- [LeetCode] Remove Nth Node From List 删除链表的第N个节点
- 【LeetCode】Remove Nth Node From End of List 删除链表中倒数第n个节点- Easy +