이것저것

589. N-ary Tree Preorder Traversal 본문

코딩테스트/leetcode

589. N-ary Tree Preorder Traversal

신쥔 2023. 4. 2. 18:56

문제

문제해설

자식 노드가 2개 이상이 올 수 있는 트리가 주어진다. 전위순회를 통해 노드의 값을 반환해야한다.

정답코드

let createOutput = (root, output) => {
    if(root === null)
        return [];
    output.push(root.val);
    root = root.children;
    root.forEach((child) => createOutput(child, output));
}

let preorder = (root) => {
    let output = [];
    createOutput(root, output);

    return output;
}

풀이까지의 과정

1. 첫번째 트라이

2. 두번째 트라이

구조를 더 정확하게 파악하기 위해서 의도적으로 다음과 같이 작성했다.

3. 세번째 트라이

두번째 트라이에서 트리의 레벨이 하나 아래로 내려갈수록 같은 구조가 반복되는 것을 확인하고 다음과 같이 수정해주었다.

아 왜!

4. 네번째 트라이

어쨋든 성공!

root 가 [] 인 경우에 막혔던 것이였다. 이때 if(root.length === 0) 이면 null 인 경우까지 한번에 체크가 되는줄 알았는데 아니였다.

'코딩테스트 > leetcode' 카테고리의 다른 글

409. Longest Palindrome  (0) 2023.04.01
142. Linked List Cycle II  (0) 2023.03.31