首页 > 其他 > 详细

LeetCode 430. Faltten a Multilevel Doubly Linked List

时间:2018-07-26 14:26:20      阅读:400      评论:0      收藏:0      [点我收藏+]

题目链接:LeetCode 430. Faltten a Multilevel Doubly Linked List

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_iteration(Node *head) {
        if (head == NULL) {
            return NULL;
        }
        for (Node *p = head; p != NULL; p = p->next) {
            Node *next = p->next;
            if (p->child != NULL) {
                p->next = p->child;
                p->child->prev = p;
                p->child = NULL;
                Node *tmp = p->next;
                while (tmp->next != NULL) {
                    tmp = tmp->next;
                }
                tmp->next = next;
                next->prev = tmp;
            }
        }
        return head;
    }
    
    // 解法二:递归
    Node* flatten_recursion(Node *head) {
        if (head == NULL) {
            return head;
        }
        Node *p = head;
        while (p != NULL) {
            if (p->child != NULL) {
                Node *next = p->next;
                Node *nextLayer = flatten_recursion(p->child);
                p->next = nextLayer;
                nextLayer->prev = p;
                p->child = NULL;
                while (nextLayer->next != NULL) {
                    nextLayer = nextLayer->next;
                }
                nextLayer->next = next;
                if (next != NULL) {
                    next->prev = nextLayer;
                }
            }
            p = p->next;
        }
        return head;
    }
};

LeetCode 430. Faltten a Multilevel Doubly Linked List

原文:https://www.cnblogs.com/xjshi/p/9371018.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!