Google 태그 관리자 아이콘

알고리즘 풀이

.leetcode(430. Flatten a Multilevel Doubly Linked List)

silvergoni 2022. 5. 7. 12:33
반응형

https://leetcode.com/problems/flatten-a-multilevel-doubly-linked-list/

 

1. 2022/05/07 시도

소요시간: 9분

class Solution {
    public Node flatten(Node head) {
        Node current = head;
        while(current != null) {
            Node nextNode = current.next;
            if (current.child != null) {
                current.next = current.child;
                current.child.prev = current;
                current.child = null;
                
                Node last = current;
                while (last.next != null) {
                    last = last.next;
                }
                if (nextNode != null) {
                    nextNode.prev = last;
                    last.next = nextNode;
                }
            }
            current = current.next;
        } 
        
        return head;
    }
}

풀이 접근 과정

기본적으로 current로 노드를 순회하도록 한다.

child가 있을 때, 연결해준다.
단 예외처리를 잘해줘야한다.

느낀점

  • 이번에도 nextNode가 null처리를 놓쳤다. 다음에는 edge case까지 고려해서 잘 풀면 좋겠다.

알고리즘 정리노트: .leetcode(알고리즘 문제풀이 접근)

반응형