
function largestValues(root: TreeNode | null): number[] {
const answer: number[] = [];
if (! root) return answer;
const queue = [root];
while (queue.length > 0) {
let qLen: number = queue.length;
let maxNumber: number = Number.MIN_SAFE_INTEGER;
while (qLen-- > 0) {
const node: TreeNode = queue.shift();
maxNumber = Math.max(maxNumber, node.val);
node.left && queue.push(node.left);
node.right && queue.push(node.right);
}
answer.push(maxNumber);
}
return answer;
};
const node = queue.shift()
- queue 배열에서 첫 번째 요소를 제거하고, 그 요소를 node라는 변수에 할당하는 작업을 수행
node.left && queue.push(node.left);
node.right && queue.push(node.right);
- 현재 노드의 왼쪽 자식 노드 or 오른쪽 자식 노드가 존재하는지 확인.
존재한다면, 즉 null이 아니라면, 해당 자식 노드를 queue.push(node.left or node.right)를 통해 queue 배열에 추가
'LeetCode' 카테고리의 다른 글
| 2562. Find the Array Concatenation Value / TypeScript (0) | 2024.05.18 |
|---|---|
| 455. Assign Cookies / TypeScript (0) | 2024.05.17 |
| 1695. Maximum Erasure Value / TypeScript (0) | 2024.05.17 |
| 2427. Number of Common Factors (0) | 2024.05.15 |
| 1143. Longest Common Subsequence (TypeScript) (0) | 2024.05.15 |