Flatten a Multilevel Doubly Linked List LeetCode solution in JavaScript
1var flatten = function (head) {2var arr = [];3var temp = head;4var prev = null;5while (temp) {6if (temp.child != null) {7arr.push(temp.next);8temp.next = temp.child;9temp.child.prev = temp;10temp.child = null;11}12prev = temp;13temp = temp.next;14}15for (var j = arr.length - 1; j >= 0; j--) {16if (arr[j] != null) mergeOtherLists(arr[j]);17}18return head;1920function mergeOtherLists(root) {21prev.next = root;22root.prev = prev;23while (root) {24prev = root;25root = root.next;26}27}28};