📌  相关文章
📜  用于对 0、1 和 2 的链表进行排序的 Javascript 程序

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

用于对 0、1 和 2 的链表进行排序的 Javascript 程序

给定一个由 0、1 和 2 组成的链表,对它进行排序。
例子

Input: 1 -> 1 -> 2 -> 0 -> 2 -> 0 -> 1 -> NULL
Output: 0 -> 0 -> 1 -> 1 -> 1 -> 2 -> 2 -> NULL

Input: 1 -> 1 -> 2 -> 1 -> 0 -> NULL 
Output: 0 -> 1 -> 1 -> 1 -> 2 -> NULL

来源:微软专访 |设置 1

以下步骤可用于对给定的链表进行排序。

  • 遍历列表,统计0、1、2的个数。设计数分别为 n1、n2 和 n3。
  • 再次遍历列表,前 n1 个节点用 0 填充,然后 n2 个节点用 1 填充,最后 n3 个节点用 2 填充。

下图是上述方法的试运行:

下面是上述方法的实现:

Javascript


输出:

Linked List Before Sorting
2  1  2  1  1  2  0  1  0
Linked List After Sorting
0  0  1  1  1  1  2  2  2

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

请参阅完整的文章对 0s、1s 和 2s 的链表进行排序以获取更多详细信息!