leetcode 237 Delete Node in a Linked List

题目链接https://leetcode.com/problems/delete-node-in-a-linked-list/

思路分析:题目要求在链表中删除给定的node,该node不为链表中的tail。因为没有node的前一个结点,所以想要直接从linked list中直接删除结点node是不可能的。

根据题目信息,可以通过将node.next结点的值赋给node,并删除node.next结点,则效果与直接删除node结点相同。

代码如下:

# 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