Leetcode 430. Flatten a Multilevel Doubly Linked List | | Leetcode 430. Flatten a Multilevel Doubly Linked List 文章作者:Tyan博客:noahsnail.com | CSDN | 简书 1. Description 2. Solution1234567891011121314151617181920212223242526272829303132333435363738394041424344454647/*// Definition for a Node.class Node {public: int val = NULL; Node* prev = NULL; Node* next = NULL; Node* child = NULL; Node() {} Node(int _val, Node* _prev, Node* _next, Node* _child) { val = _val; prev = _prev; next = _next; child = _child; }};*/class Solution {public: Node* flatten(Node* head) { stack<Node*> nodes; Node* current = head; Node* pre = nullptr; while(current) { if(current->child) { if(current->next) { nodes.push(current->next); } current->next = current->child; current->next->prev = current; current->child = nullptr; } pre = current; current = current->next; if(!current && !nodes.empty()) { Node* temp = nodes.top(); nodes.pop(); pre->next = temp; temp->prev = pre; current = temp; } } return head; }}; Reference https://leetcode.com/problems/flatten-a-multilevel-doubly-linked-list/description/ 如果有收获,可以请我喝杯咖啡! 赏 微信打赏 支付宝打赏