Leetcode Delete Node in a Linked List Python 单链中删除一个节点的方法,先赋值,后跳过。

Leetcode 237题 Delete Node in a Linked List
Write a function to delete a node (except the tail) in a singly linked list, given only access to that node.

Given linked list – head = [4,5,1,9], which looks like following:
在这里插入图片描述

Example 1:

Input: head = [4,5,1,9], node = 5
Output: [4,1,9]
Explanation: You are given the second node with value 5, the linked list should become 4 -> 1 -> 9 after calling your function.
Example 2:

Input: head = [4,5,1,9], node = 1
Output: [4,5,9]
Explanation: You are given the third node with value 1, the linked list should become 4 -> 5 -> 9 after calling your function.
Note:

The linked list will have at least two elements.
All of the nodes' values will be unique.
The given node will not be the tail and it will always be a valid node of the linked list.
Do not return anything from your function.

题目大意:在单链表中,仅删除给出的单独一个节点,并连上链表。 有提示,链表至少包含两个元素,每个节点的值都是唯一的,并且给出的不会是尾节点,不要从函数中返回任何东西。

两步:1. 把后节点赋给当前节点。
2. 把当前节点再指向下下个节点。

相当于跳过了当前的下一个节点。

例如单链为: [4–>5–>1–>9]

                  1.  [4-->1-->1-->9]  把位置2赋予位置1
                  2.  [4-->1---1-->9]   位置1直接指向位置3

直接上代码:

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    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

这种写法用JAVA和C++提交,就超过100%, 用python写效率就很低。 但是Python就两行啊!

疫情中的英国,
加油!
17/05/2020

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值