📜  用于链表顺时针旋转的Javascript程序

📅  最后修改于: 2022-05-13 01:57:45.030000             🧑  作者: Mango

用于链表顺时针旋转的Javascript程序

给定一个单链表和一个整数K ,任务是将链表顺时针向右旋转K位。
例子:

方法:旋转链表首先检查给定的 k 是否大于链表中的节点数。遍历链表并找到链表的长度,然后将其与 k 进行比较,如果小于则继续,否则通过对链表的长度取模,在链表大小的范围内推导它。
之后从列表的长度中减去 k 的值。现在,问题已更改为链表的左旋转,因此请按照以下步骤操作:

  • 将第 k 个节点的下一个节点更改为 NULL。
  • 将最后一个节点的下一个节点更改为上一个头节点。
  • 将头部更改为第 (k+1) 个节点。

为此,需要指向第 k 个节点、第 (k+1) 个节点和最后一个节点的指针。
下面是上述方法的实现:

Javascript


输出:
4 -> 5 -> 1 -> 2 -> 3 -> NULL

时间复杂度: O(n),其中 n 是链表中的节点数。

辅助空间: O(1)

详情请参考链表顺时针旋转的完整文章!