Leetcode Challenge: Delete Node in a Linked List (6/2)

今天的题目是本来的 No.237 (https://leetcode.com/problems/delete-node-in-a-linked-list/),把 Linked List 中某个 Node 删除掉。

http://img2.58codes.com/2024/20127688FDVQVWLZjG.png

基本上一般人看到这题应该会想说这题也太废了吧!大概是 Linked List 的 Hello World 等级题目,不过不过,还是有一点点有趣的~

一般删除 Linked List 中某个节点,可能会给你 Head,然后要你找到某个 Node 的 Value 是符合的并删除,那么我们就是从 Head 一路找到该 Node,并且把该 Node 的前一个 Node 的 Next 指向该 Node 的 Next。然而这题只给你要删除的 Node 并没有给你 Head,而且又是 Singly (如果是 Doubly 还可以透过 prev 来得知前一个 Node),该怎么办?其实只要稍微动动脑三秒钟也是可以想出来的。

让我们来看 Code,思路上就是让这个要被删除的 node 去抓交替,抓的是谁呢?就是 node.next。把 node.next 的 Value (node.next.val) 变到自己身上 (node.val),然后 node.next 指向 node.next.next ,就这样无声无息地把下一个 Node 给干掉了,嘿嘿!(所以其实剉咧等的是 node.next 而不是 node lol)

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

http://img2.58codes.com/2024/201276885OEn3xwqSi.png

See YA!

欢迎追蹤我的 Medium 啰!
https://medium.com/@ryanyang1221


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章