[LeetCode]

준규·2022년 11월 17일
0

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을 해보니

정답이었다!

profile
안녕하세요 :)

0개의 댓글