嗨,我正在研究leetcode问题:
编写一个函数以删除单链接列表中的节点(尾部除外),仅授予对该节点的访问权限。
注意:
我正在使用Python进行工作,并且真的很难理解这个问题是怎么可能发生的。
如果我仅有权访问要删除的列表节点,那么我可以明确地说
listNode.next = None
和要删除的列表现在将只指向链接到要删除的列表节点的元素,我想将其设置为指向已删除元素指向的下一个元素。
但是如果只给我要删除的元素,我要如何访问列表中的前一个元素,因为它是一个单链列表,以前没有该元素的概念?
我是否正确理解了这个问题,因为目前看来对我来说是不可能的?
或者我根本缺乏解决该问题的方法或知识吗?
任何人都可以提供一些提示吗?
是的,您了解它是正确的。解决此问题的方法是用下一个节点的值编辑当前节点的值,然后删除下一个元素(因为您已经将其复制到当前元素中了。)
class Solution(object): def deleteNode(self, node): node.val = node.next.val node.next = node.next.next
话虽如此,这个LC问题并没有真正的收获。在实际情况下,任何此类要求都将具有上一节点的引用,或者上下文中的列表将成为双链表,并且删除节点比复制数据要好得多,因为这些节点可以拥有比单个节点更多的数据属性。 。
因为这是一个挑战,所以我只提供一个提示: