개발 일지
965. Univalued Binary Tree (단일값 이진 트리) 본문
이진 트리는 트리의 모든 노드가 같은 값을 가질 때 단일값을 갖습니다.
이진 트리의 root가 주어지면 주어진 트리가 유니값인 경우 true로 반환하거나 그렇지 않은 경우 false로 반환합니다.
예시 1:
입력: root = [1,1,1,1,1,null,1]
출력: true
예시 2:
입력: root = [2,2,2,5,2]
출력: false
조건:
- 트리의 노드 수는 [1, 100] 범위에 있습니다.
- 0 <= Node.val < 100
정답:
/**
* Definition for a binary tree node.
* public class TreeNode {
* public int val;
* public TreeNode left;
* public TreeNode right;
* public TreeNode(int val=0, TreeNode left=null, TreeNode right=null) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
public class Solution {
public bool IsUnivalTree(TreeNode root) {
if (root == null)
{
return true;
}
return UnivaluedCheck(root, root.val);
}
public static bool UnivaluedCheck(TreeNode root, int val)
{
if (root == null)
{
return true;
}
if (root.val != val)
{
return false;
}
return UnivaluedCheck(root.left, val) && UnivaluedCheck(root.right, val);
}
}
해설: root를 모두 탐색 때까지 체크를 하고 만약 모두 탐색했을 때 root.val이 동일하다면 false를 return합니다.
즉 root가 null이라면 탐색이 완료되었다는 뜻이므로 true를 return합니다.
해당 작업을 left와 right 모두 완료해야하므로 둘다 한번에 &&로 묶어 return합니다.
'코딩 테스트 > LeetCode' 카테고리의 다른 글
705. Design HashSet (HashSet 디자인) (0) | 2024.10.31 |
---|---|
9. Palindrome Number (대칭수) (0) | 2024.10.31 |
700. Search in a Binary Search Tree (이진 탐색 트리에서의 검색) (0) | 2024.10.29 |
1566. Detect Pattern of Length M Repeated K or More Times (길이 M의 패턴이 K번 이상 반복되는 것을 감지합니다.) (1) | 2024.10.28 |
1629. Slowest Key (가장 느린 키) (1) | 2024.10.21 |