leetcode笔记--Delete Node in a Linked List

来源:互联网 发布:手机h5页面制作软件 编辑:程序博客网 时间:2024/04/30 08:56

题目:难度(Easy)

Write a function to delete a node (except the tail) in a singly linked list, given only access to that node.
Supposed the linked list is 1 -> 2 -> 3 -> 4 and you are given the third node with value 3, the linked list should become 1 -> 2 -> 4 after calling your function.
Tags:Linked List
Similar Problems:(E)Remove Linked List Elements

分析:要删除一个节点,我们需要知道这个节点的前驱节点,而输入给的是要删除的节点的指针,我们并不能获得他的前驱,这就需要使用一个小小的技巧。假设当前要删除的节点的指针是p,我们可以将p.next的元素值复制到p,然后删除p.next节点就行了。

代码实现:

# Definition for singly-linked list.# class ListNode(object):#     def __init__(self, x):#         self.val = x#         self.next = Noneclass Solution(object):    def deleteNode(self, node):        """        :type node: ListNode        :rtype: void Do not return anything, modify node in-place instead.        """        p = node        q = node.next        p.val = q.val        p.next = q.next


0 0
原创粉丝点击