[LeetCode] 515. Find Largest Value in Each Tree Row

Chobby·2026년 3월 16일

LeetCode

목록 보기
1036/1042

😎풀이

  1. BFS를 통한 각 Depth 접근
  2. 각 Depth에서 가장 큰 값 갱신
  3. Leaf Node를 순회할 수 있도록 Queue에 추가
  4. 각 Row에서 가장 큰 값을 largest에 추가
  5. 모든 Row에서 가장 큰 값을 모은 배열 largest 반환
function largestValues(root: TreeNode | null): number[] {
    if(!root) return []
    const queue: TreeNode[] = [root]
    const largest = []
    while(queue.length) {
        const rowLen = queue.length
        let rowLargest = -Infinity
        for(let i = 0; i < rowLen; i++) {
            const node = queue.shift()
            rowLargest = Math.max(rowLargest, node.val)
            if(node.left) queue.push(node.left)
            if(node.right) queue.push(node.right)
        }
        largest.push(rowLargest)
    }
    return largest
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글