binary tree가 있을 때 노드의 모든 값이 같으면 uni-valued 라고 한다. 이런 조건에서 binary tree가 주어질 때 주어진 binary tree 가 uni-valued 라면 true를 아니라면 false 를 리턴하는 문제이다.
Example을 보자
즉 모든 노드의 값이 같으면 true , 아니라면 false를 리턴하는 문제이다.
const isUnivalTree = function (root) {
const temp = [];
const helper = (node) => {
if (node) {
helper(node.left);
temp.push(node.val);
helper(node.right);
}
};
helper(root);
const set = [...new Set(temp)];
return set.length === 1 ? true : false;
};
먼저 트리를 순회할 도우미 함수 helper를 만들어서 트리를 순회를 하면서 각 노드의 값을 temp 배열에 넣어주었다.
그 다음 만약 모든 노드의 값이 같다면 temp를 중복이 없는 배열로 만들었을 때 그 길이가 1일것이므로
set을 활용해서 temp를 중복이 없는 배열로 만들어 준 뒤 set의 길이가 1이면 true , 아니라면 false를 리턴해주었다.
submit을 해보니
정답이었다!