๋ฌธ์
ํ์ด ๊ณผ์
์ด์ง ํธ๋ฆฌ์ level order
ํ์์ ๊ตฌํํ๋ ๋ฌธ์ ์
๋๋ค.
๋ํ์ ์ธ BFS
๋ฌธ์ ๋ก ๋ฃจํธ ๋
ธ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ์ผ์ชฝ๊ณผ ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ์ ๋ฃจํธ ๋
ธ๋๋ฅผ ๋ฐฉ๋ฌธํด์ฃผ๋ฉฐ ํ์์ ์ํํ๋ฉด ๋ฉ๋๋ค.
์ด๋ ์ฃผ์ํ ์ ์ ๋ฌธ์ ์ถ๋ ฅ ํ์์ด level
์ ์๋ ๋ชจ๋ ๋
ธ๋๋ฅผ ํ๋๋ก ๋ฌถ์ด์ ๋ฐฐ์ด๋ก ์ถ๊ฐํด์ผํ๋ฏ๋ก
๊ฐ๊ฐ์ BFS
๋จ๊ณ๋ง๋ค ํ์ฌ ํ์ ์กด์ฌํ๋ ๋ชจ๋ ๋
ธ๋์ ๊ฐ์ ๋งํผ ๋ฃจํ๋ฅผ ๋๋ฉฐ ์์ ๋
ธ๋๋ค์ ํ์ํด์ผํ๋ค๋ ๊ฒ์
๋๋ค.
๋ง์น ๋ฐฑ์ค์ ํ ๋งํ
๋ฌธ์ ์ ๋น์ทํ ๋ฐฉ์์ด์ฃ . ์ด๋ ๊ฒ ํด์ผ ํ์ฌ ๋ ๋ฒจ์ ์กด์ฌํ๋ ๋ชจ๋ ๋
ธ๋๋ฅผ ํจ๊ป ๋ฐฐ์ด๋ก ๋ฌถ์ด์ค ์ ์์ต๋๋ค.
์ฝ๋
/**
* Definition for a binary tree node.
* function TreeNode(val, left, right) {
* this.val = (val===undefined ? 0 : val)
* this.left = (left===undefined ? null : left)
* this.right = (right===undefined ? null : right)
* }
*/
/**
* @param {TreeNode} root
* @return {number[][]}
*/
var levelOrder = function (root) {
if (!root) return [];
const answer = [];
function bfs(root) {
const Q = [];
Q.push(root);
while (Q.length) {
const loop = Q.length;
const visit = [];
for (let i = 0; i < loop; i++) {
const here = Q.shift();
visit.push(here.val);
if (here.left) Q.push(here.left);
if (here.right) Q.push(here.right);
}
if (visit.length) answer.push(visit);
}
}
bfs(root);
return answer;
};
๋ฐ์ํ
'๐ algorithm > leetcode' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
LeetCode 136 - Single Number (Easy) (0) | 2021.03.03 |
---|---|
LeetCode 104 - Maximum Depth of Binary Tree (Easy) (0) | 2021.03.03 |
LeetCode 617 - Merge Two Binary Trees (Easy) (0) | 2021.03.03 |
LeetCode 98 - Validate Binary Search Tree (Medium) (0) | 2021.03.03 |
LeetCode 130 - Surrounded Regions (Medium) (0) | 2021.03.03 |
๐ฌ ๋๊ธ