😎풀이

  1. nodeVals: 노드 값들이 담길 Set
  2. dfs: 깊이 우선 탐색하며, 모든 노드들의 값을 nodeVals에 추가
  3. sortedNodeVals: nodeVals에 담긴 값을 오름차 순 정렬
  4. 2번째로 작은 노드를 반환하고, 만일 값이 존재하지 않을 경우 -1 반환
function findSecondMinimumValue(root: TreeNode | null): number {
    const nodeVals = new Set<number>()
    function dfs(node: TreeNode): void {
        nodeVals.add(node.val)
        if(node.left) dfs(node.left)
        if(node.right) dfs(node.right)
    }
    dfs(root)
    const sortedNodeVals = [...nodeVals].toSorted((a, b) => a - b)
    return sortedNodeVals[1] ?? -1
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글