😎풀이

  1. dfs 수행하며, 양쪽 자식 노드가 없는 경우 leaf 노드로 간주
  2. leaf 노드의 모음을 JSON.stringify로 문자열화 하여 문자비교
  3. 비교값 반환
function leafSimilar(root1: TreeNode | null, root2: TreeNode | null): boolean {
    function dfs(node: TreeNode | null, leaves: number[]) {
        if(!node) return
        if(!node.left && !node.right) leaves.push(node.val)
        dfs(node.left, leaves)
        dfs(node.right, leaves)
        return leaves
    }
    const root1Leaves = dfs(root1, [])
    const root2Leaves = dfs(root2, [])
    return JSON.stringify(root1Leaves) === JSON.stringify(root2Leaves)
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글