您的位置:首页 > Web前端 > Node.js

leetcode笔记--Delete Node in a Linked List

2016-02-19 14:36 591 查看
题目:难度(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 = None

class 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: