[LeetCode] 102. Binary Tree Level Order Traversal

Chobby·2024년 12월 26일
1

LeetCode

목록 보기
135/194

😎풀이

노드를 탐색하면 되는 문제이다.

별 다른 어려움 없이 해당 노드가 있는 깊이를 파악한 후 해당 인덱스의 배열에 담아 반환하면 됨

깊이 우선 탐색의 개념을 이해하면 충분히 풀이가 가능할 것 같다.

/**
 * Definition for a binary tree node.
 * class TreeNode {
 *     val: number
 *     left: TreeNode | null
 *     right: TreeNode | null
 *     constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
 *         this.val = (val===undefined ? 0 : val)
 *         this.left = (left===undefined ? null : left)
 *         this.right = (right===undefined ? null : right)
 *     }
 * }
 */

function levelOrder(root: TreeNode | null): number[][] {
    // TreeNode가 저장될 배열
    const result = [];
    // level: 해당 노드가 존재하는 위치
    // node: 해당 노드
    function dfs(level: number, node: TreeNode | null) {
        if(!node) return;
        if(!result[level]) result[level] = []
        result[level] = [...result[level], node.val]
        dfs(level + 1, node.left)
        dfs(level + 1, node.right)
    }

    dfs(0, root)

    return result
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글