iT邦幫忙

0

leetcode with python:237. Delete Node in a Linked List

  • 分享至 

  • xImage
  •  

題目:

Write a function to delete a node in a singly-linked list. You will not be given access to the head of the list, instead you will be given access to the node to be deleted directly.

It is guaranteed that the node to be deleted is not a tail node in the list.

給定一個在linked list內部的Node,將其刪除,該Node不會是尾端的Node

這題剛看到滿是困惑
心想沒給我該Node的上一個Node我該怎麼刪掉它
後來我想到,萬一我們刪掉的不是這個Node呢?

# 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

既然題目確保了我們的下一個Node不會是None
那我們乾脆刪掉我們下一個Node,用現在這個Node紀錄刪掉那個Node的值
所以將該Node的值改為下一個Node的值
next直接接到下下個Node
一個沒有該Node的linked list就大功告成了
最後執行時間35ms(faster than 98.11%)

那我們下題見


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言