力扣上看到的一个题,大概是写一个函数,这个函数的传参值,是一个单链表的某一个节点,需要在链表中删除这个节点。不影响其他节点。
首先按照常理,应该是找到前一个节点,并将前一个节点指向下一个指针的节点进行更改。
但是有问题,首先,这是一个单链表,传参值是要删除的节点,也就是说找不到它的前一个节点。
思路:
首先,把要删除的节点值改为下一个节点值,这样删除下一个节点,就可以解决这个问题
func deleteNode(node *ListNode) {
node.Val=node.Next.Val//将此节点的值更改为下一个节点
node.Next = node.Next.Next//将此节点指向下一个节点的指针进行更改,指向下一个节点的下一个节点
}
最后将最后一个元素删除。