题目描述:您将获得一个双向链表,除了下一个和前一个指针之外,它还有一个子指针,可能指向单独的双向链表。这些子列表可能有一个或多个自己的子项,依此类推,生成多级数据结构,如下面的示例所示。
扁平化列表,使所有结点出现在单级双链表中。您将获得列表第一级的头部。
输入:
1—2---3—4---5—6–NULL
|
7—8---9—10–NULL
|
11–12–NULL

输出:
1-2-3-7-8-11-12-9-10-4-5-6-NULL
算法题:扁平化多级双向链表
算法题:扁平化多级双向链表

java实现:

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

    public Node() {}

    public Node(int _val,Node _prev,Node _next,Node _child) {
        val = _val;
        prev = _prev;
        next = _next;
        child = _child;
    }
};
*/
class Solution {
    public Node flatten(Node head) {
       if(head==null){
           return head;
       }
       Node cur=head;
       while(cur!=null){
           Node next=cur.next;
           if(cur.child!=null){
              Node child=cur.child;
              cur.next=child;
               child.prev=cur;
               cur.child=null;
               while(child!=null && child.next!=null){
                   child=child.next;
               }
               child.next=next;
               if(next!=null){
                   next.prev=child;
               }
           }
           cur=cur.next;
       } 
        return head;
    }
}

相关文章:

  • 2021-11-29
  • 2021-10-11
  • 2022-12-23
  • 2022-12-23
  • 2021-10-14
  • 2021-10-21
  • 2022-12-23
猜你喜欢
  • 2021-08-23
  • 2021-11-11
  • 2022-02-17
  • 2021-07-01
  • 2021-11-05
  • 2021-07-19
  • 2021-10-16
相关资源
相似解决方案