Flatten a Multilevel Doubly Linked List LeetCode solution in C++
1class Solution {2public:3Node *flatten(Node *head) {4if (head == NULL) return head;5Node *temp = head;6stack<Node *> stk;7while (temp->next != NULL || temp->child != NULL || stk.size() != 0) {8if (temp->next == NULL && temp->child == NULL && stk.size()) {9Node *a = stk.top();10stk.pop();11temp->next = a;12a->prev = temp;13}14if (temp->child != NULL) {15if (temp->next != NULL) {16Node *a = temp->next;17a->prev = NULL;18stk.push(a);19}20temp->next = temp->child;21temp->next->prev = temp;22temp->child = NULL;23}24temp = temp->next;25}26return head;27}28};29Feel free to ask in doubt in comment section