<分区>
我在研究别人的代码,有一部分代码让我很困惑。 [1]
在 remove(head)[1]
中是什么意思?另外,(head, head.next)[i+1 == n]
是什么?有人可以帮助我吗?
代码中,head
是链表的头部,来自另一个类ListNode,包含两个函数。一个是head.val
,显示head的值。另一个是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]