LeetCode 剑指 Offer II 028. 展平多级双向链表

阅读 59

2022-04-23

LeetCode 剑指 Offer II 028. 展平多级双向链表

文章目录

题目描述

LeetCode 剑指 Offer II 028. 展平多级双向链表
提示:


    节点数目不超过 1000
    1 <= Node.val <= 10^5

一、解题关键词


二、解题报告

1.思路分析

2.时间复杂度

3.代码示例

/*
// Definition for a Node.
class Node {
    public int val;
    public Node prev;
    public Node next;
    public Node child;
};
*/

class Solution {
    public Node flatten(Node head) {
        dfs(head);
        return head;
    }
    Node  dfs(Node head){
        Node cur = head;
        Node last = null;

        while( cur != null){
            Node next = cur.next;
            if(cur.child != null){
                Node childLast = dfs(cur.child);
                next = cur.next;
                //将node 与child 相连
                cur.next = cur.child;
                cur.child.prev = cur;

                //如果next
                if(next != null){
                    childLast.next = next;
                    next.prev = childLast;
                }
                cur.child = null;
                last = childLast;
            } else{
                last = cur;
            }
            cur = next;
        }
        return last;
    }
}

2.知识点



总结

相同题目

430. 扁平化多级双向链表

精彩评论(0)

0 0 举报