📌  相关文章
📜  用于扁平化链接列表的 Javascript 程序

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

用于扁平化链接列表的 Javascript 程序

给定一个链表,其中每个节点都表示一个链表并包含其类型的两个指针:

  1. 指向主列表中下一个节点的指针(我们在下面的代码中称其为“右”指针)。
  2. 指向该节点指向的链表的指针(我们在下面的代码中将其称为“向下”指针)。

所有链表都已排序。请参阅以下示例

5 -> 10 -> 19 -> 28
       |    |     |     |
       V    V     V     V
       7    20    22    35
       |          |     |
       V          V     V
       8          50    40
       |                |
       V                V
       30               45

编写一个函数flatten() 将列表展平为单个链表。扁平化的链表也应该排序。比如上面的输入列表,输出列表应该是5->7->8->10->19->20->22->28->30->35->40->45->50 .

这个想法是对链表使用合并排序的 Merge() 过程。我们使用 merge() 来一个一个地合并列表。我们递归地合并()当前列表与已经展平的列表。
向下指针用于链接展平列表的节点。

下面是上述方法的实现:

Javascript


输出:

5 7 8 10 19 20 20 22 30 35 40 45 50

有关详细信息,请参阅有关扁平化链接列表的完整文章!