leetcode237 删除链表中的节点

题目

有一个单链表的 head,我们想删除它其中的一个节点 node。
给你一个需要删除的节点 node 。你将 无法访问 第一个节点 head。

示例

输入:head = [4,5,1,9], node = 5
输出:[4,1,9]
解释:指定链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9

解析

在给定节点 node的情况下,可以通过修改 node的 next 指针的指向,删除node 的下一个节点。但是题目要求删除node,为了达到删除node 的效果,只要在删除节点之前,将node 的节点值修改为node.next 的节点值即可。

/**
 * 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删了,很有意思的思路

你可能感兴趣的:(#,leetcode链表系列,链表,数据结构)