<script>
class Node
{
constructor(val)
{
this
.data = val;
this
.down =
null
;
this
.next =
null
;
}
}
var
last;
function
flattenList(node)
{
if
(node ==
null
)
return
null
;
last = node;
var
next = node.next;
if
(node.down !=
null
)
node.next = flattenList(node.down);
if
(next !=
null
)
last.next = flattenList(next);
return
node;
}
function
printFlattenNodes(head)
{
var
curr = head;
while
(curr !=
null
)
{
document.write(curr.data +
" "
);
curr = curr.next;
}
}
function
push(newData)
{
var
newNode =
new
Node(newData);
newNode.next =
null
;
newNode.down =
null
;
return
newNode;
}
var
head =
new
Node(1);
head.next =
new
Node(2);
head.next.next =
new
Node(3);
head.next.next.next =
new
Node(4);
head.next.down =
new
Node(7);
head.next.down.down =
new
Node(9);
head.next.down.down.down =
new
Node(14);
head.next.down.down.down.down =
new
Node(15);
head.next.down.down.down.down.next =
new
Node(23);
head.next.down.down.down.down.next.down =
new
Node(24);
head.next.down.next =
new
Node(8);
head.next.down.next.down =
new
Node(16);
head.next.down.next.down.down =
new
Node(17);
head.next.down.next.down.down.next =
new
Node(18);
head.next.down.next.down.down.next.next =
new
Node(19);
head.next.down.next.down.down.next.next.next =
new
Node(20);
head.next.down.next.down.down.next.next.next.down =
new
Node(21);
head.next.down.next.next =
new
Node(10);
head.next.down.next.next.down =
new
Node(11);
head.next.down.next.next.next =
new
Node(12);
head = flattenList(head);
printFlattenNodes(head);
</script>