ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Day10] 430. Flatten a Multilevel Doubly Linked List
    @StudY/.algorithm 2019. 2. 28. 18:02

    430. Flatten a Multilevel Doubly Linked List Medium


    /*

    // 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) {

            Node flatten = head;

            Node temp = null;

            Node countChild = null;

            int count;

            

            if (head == null) return head;

            

            while (head.next!=null) {

                if (head.child!=null) {

                    temp = head.next;

                    

                    countChild = head.child;

                    while(countChild.next!=null) {

                        countChild = countChild.next;

                    }

                    

                    head.next = flatten(head.child);

                    head.child = null;

                    

                    head.next.prev = head;

                    

                   

                    countChild.next = temp;

                    temp.prev = countChild;

                    

                    head = temp;

                } else {

                    head = head.next;

                }

            }

            

            if (head != null) {

                if (head.child!=null) {

                    countChild = head.child;

                    while(countChild.next!=null) {

                        countChild = countChild.next;

                    }

                    

                    head.next = flatten(head.child);

                    head.child = null;

                    

                    head.next.prev = head;

                    

                    head = null;

                } else {

                    head = head.next;

                }

            }

                

            

            return flatten;

        }

    }


    Runtime: 1 ms, faster than 100.00% of Java online submissions for Flatten a Multilevel Doubly Linked List.
    Memory Usage: 36.8 MB, less than 73.11% of Java online submissions forFlatten a Multilevel Doubly Linked List.


    Accepted1 ms36.8 MBjava



    댓글

Designed by Tistory.