Leetcode【Go语言】删除链表中的节点
2020-02-03 09:59
991 查看
题目
请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。
现有一个链表 – 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.不要从你的函数中返回任何结果。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/delete-node-in-a-linked-list
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
代码
/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */ func deleteNode(node *ListNode) { node.Val = node.Next.Val node.Next = node.Next.Next }
总结
对于指针的理解需要加深。传入参数node ListNode仅表示node的值会在deleteNode方法中改变。此题中,由于删除的是传入的节点,在无法访问前一个节点的情况下,只需要将当前节点的Next指针指向下一个节点的Next域,并将下一个节点的val赋值给当前节点。
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- leetcode:删除链表中的节点
- LeetCode - 237 - 删除链表中的节点(delete-node-in-a-linked-list)
- Leetcode刷题14-237.删除链表中的节点(C++)
- LeetCode 237.删除链表中的节点
- leetcode:Remove Nth Node From End of List(删除链表倒数第n个节点)【面试算法题】
- [LeetCode] 237. Delete Node in a Linked List 删除链表的节点
- 每天一道LeetCode-----删除链表倒数第n个节点
- leetcode 19: 删除链表的倒数第N个节点
- Leetcode:给定一个链表,删除链表倒数第n个节点并返回其头结点。
- leetcode237.删除链表中的节点
- [LeetCode-203] Remove Linked List Elements(链表节点删除)
- LeetCode解题记录(19)——删除链表的倒数第N个节点
- leetcode 19题 删除链表的第N个节点
- LeetCode 237. Delete Node in a Linked List - 删除链表中的一个节点
- leetcode 删除链表的倒数第二个节点
- [LeetCode-19] Remove Nth Node From End of List(删除链表中倒数第N个节点)
- Leetcode 19.删除链表的倒数第N个节点
- Leetcode 237/83/203 两个指针与链表节点删除
- [Leetcode] 19. 删除链表的倒数第N个节点 java
- LeetCode刷题--19. 删除链表的倒数第N个节点