LeetCode 430. Flatten a Multilevel Doubly Linked List

Posted hankunyan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 430. Flatten a Multilevel Doubly Linked List相关的知识,希望对你有一定的参考价值。

 

DFS题目,先访问child再访问next。遍历的时候顺便创建doubly linked list即可。

 

Helper Function

可以利用全局变量,加上dfs的helper function。这样的好处是非常好写,不容易出错。

class Solution 
public:
    Node *dummy=new Node(0,NULL,NULL,NULL), *p=dummy, *prev=NULL;
    
    Node* flatten(Node* head) 
        dfs(head);
        return dummy->next;
    
    
    void dfs(Node *head)
        if (head==NULL) return;
        p->next = new Node(head->val,prev,NULL,NULL);
        prev = p = p->next;
        if (head->child) dfs(head->child);
        if (head->next) dfs(head->next);
    
;

 

Self Recursion

。。。

以上是关于LeetCode 430. Flatten a Multilevel Doubly Linked List的主要内容,如果未能解决你的问题,请参考以下文章

430. Flatten a Multilevel Doubly Linked List

LeetCode 114. Flatten Binary Tree to Linked List

[LeetCode] Flatten Nested List Iterator 压平嵌套链表迭代器

leetcode 114. Flatten Binary Tree to Linked List (Python版)

[LeetCode] Flatten a Multilevel Doubly Linked List 压平一个多层的双向链表

LeetCode 430. Faltten a Multilevel Doubly Linked List