237.删除链表中的节点
题目描述
请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点。传入函数的唯一参数为 要被删除的节点 。
思路
由于单链表不能直接访问当前节点的前一个节点,现要删除当前节点,我们可以将当前节点的下一个节点的值复制到当前节点,然后改变当前节点的next指针删除当前节点的下一个节点即可达到删除当前节点的效果。
代码
# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution(object):
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