当我们把它放在函数的末尾和元组的末尾时,[1] 是什么意思?



我正在研究别人的代码,部分代码让我很困惑。[1]remove(head)[1]中是什么意思?另外,什么是(head, head.next)[i+1 == n]?有人可以帮助我吗?

在代码中,head是链表的头部,来自另一个名为ListNode的类,它包含两个函数。一个是head.val,它显示了头部的值。另一个是head.next,它调用链表中的下一个对象。这里n是一个整数。此代码尝试从列表末尾删除第 N 个节点并返回其头部。

例如

给定链表:1->2->3->4->5,n = 2。

从末尾删除第二个节点后,链表变为 1->2->3->5。

以下是代码:

class Solution:
def removeNthFromEnd(self, head, n):
def remove(head):
if not head:
return 0, head
i, head.next = remove(head.next)
return i+1, (head, head.next)[i+1 == n]
return remove(head)[1]

函数 remove 返回一个元组(实际上是一对( - 第一个值是索引,第二个值是删除的元素。因此,请尝试一次一步地解决您的问题。将对函数的调用替换为它返回的值,看看现在方括号是否有意义。

相关内容

  • 没有找到相关文章

最新更新