Menu
CoddyTech

Reverse Linked List

简单链表python iconjava iconcpp iconc iconjs icon+10

给你一个存储在数组 next 中的单向链表:节点 i 指向节点 next[i],-1 表示链表结束,头节点是节点 0。节点在数组中的存储顺序并不是链表顺序,因此要沿着链接遍历。

反转链表,即调转每个链接的方向,使原来的最后一个节点成为头节点,节点 0 成为最后一个节点,并指向 -1。返回更新后的 next 数组,其长度与输入数组相同。

函数

reverseList(next: integer-array) → integer-array
nextinteger-array
每个节点所链接节点的索引,最后一个节点为 -1
返回值integer-array
反转后列表中的下一个数组

约束条件

  • 1 ≤ next.length ≤ 5000
  • 每个 next[i] 都是 -1,或者是从 0 到 next.length-1 的节点索引。
  • 从节点 0 开始,列表会恰好访问每个节点一次,然后到达 -1。这里没有环。

示例

输入
next = [1, 2, 3, -1]
输出
[-1, 0, 1, 2]
解释
反转后,0 → 1 → 2 → 3 变成 3 → 2 → 1 → 0:每个节点都指向它前面的节点,而节点 0 指向 -1。
challenge icon

进阶

你能只反转列表中位置 left 和位置 right 之间的部分,并让前后的节点保持原位吗?

重置代码
def reverseList(next):
    # 在这里编写代码

测试 #1

测试 #2

测试 #3

参数

next = [1, 2, 3, -1]

预期输出

[-1, 0, 1, 2]