191020 TIL Promise && BFS
Oct 20, 2019
»
1.5막,
TIL (Today I Learned)
Promise
스터디에서 오랜만에 비동기를 복습했다.
promise는 좀 더 공부해야겠다.
오늘 알게된 것:
- job queue? microtask queue? 가 task queue보다 우선한다.
- await 은 .then 과 동일
BFS
스터디에서 요새 트리를 공부하고 있다. 트리 관련 알고리즘은 거의다 재귀로 푸는 게 많아서 감 잡기가 영 어렵다.
오늘은 BFS 관련 문제를 풀었다.
leetcode - 102. Binary Tree Level Order Traversal
내 풀이:
var levelOrder = function(root) {
if (root === null) return [];
let result = [[root.val]];
let parents = [];
let children = [];
let tempValue = [];
function hasChildren(node, arr) {
if(node.left !== null) arr.push(node.left);
if(node.right !== null) arr.push(node.right);
}
hasChildren(root, parents);
while(parents.length > 0) {
let node = parents.shift();
hasChildren(node, children);
tempValue.push(node.val);
if(parents.length === 0) {
result.push(tempValue);
tempValue = [];
}
if(parents.length == 0 && children.length !== 0) {
parents = [...children];
children = [];
}
}
return result;
};
리팩토링 하기! BFS도 복습하기!