![image-20201201140204901](https://tva1.sinaimg.cn/large/0081Kckwgy1gl8bi2jterj30u00z5teg.jpg)
思路
因为只能在当前节点删除,又找不到current节点的前驱节点,所以要做的很简单:
就是把当前元素的值换成下一个元素的,然后把下下个元素赋给当前元素的下个元素。
比如 4 -> 5 -> 1 -> 9 要删除5的话,可以先把5的值改为1,然后把5的next指向9,即可达到目的
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def deleteNode(self, node):
"""
:type node: ListNode
:rtype: void Do not return anything, modify node in-place instead.
"""
node.val = node.next.val
node.next = node.next.next
![image-20201201140425531](https://tva1.sinaimg.cn/large/0081Kckwgy1gl8bki0lctj30yo0dyjsx.jpg)
/**
* 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
}
![image-20201201140523009](https://tva1.sinaimg.cn/large/0081Kckwgy1gl8bli0gb0j30yc0e23zy.jpg)