victory的博客

长安一片月,万户捣衣声

0%

leetcode | 237.删除链表中的节点

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