Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- IaC
- 분산시스템
- Lamda
- SageMaker
- 병목
- PACELC
- CAP
- rds
- sns
- terraform
- cloudwatch
- serverless
- CHECK
- Validation
- kubernetes
- amazonqcli
- aws
- fcm
- lambda
Archives
- Today
- Total
잡다한 IT 지식
965. Univalued Binary Tree 본문
본 알고리즘 풀이는 Routine Study에서 진행하고 있습니다.
저를 포함한 구성원이 대부분 초보이므로, 원하시는분은 언제라도 들어오셔도 좋습니다.
문의는 댓글 바람.
[문제 설명]
값이 다른 노드가 하나라도 나오면 return false, 다 같으면 return true
[처음 생각한 접근 방법]
1.그냥 BFS로 순회해서 다른 수가 나오면 return false 해주기
2.그냥 DFS로 순회해서 다른 수가 나오면 return false 해주기
그냥 1번으로 풀었습니다.
[자바코드]
import javax.swing.tree.TreeNode;
import java.util.LinkedList;
import java.util.Queue;
class Solution {
public boolean isUnivalTree(TreeNode root) {
Queue<TreeNode> queue = new LinkedList<>();
queue.offer(root);
int value = queue.peek().val;
while(!queue.isEmpty()) {
TreeNode node = queue.poll();
if (node.val != value) return false;
if (node.left != null) queue.offer(node.left);
if (node.right != null) queue.offer(node.right);
}
return true;
}
}
[코틀린코드]
import java.util.*
class Solution {
fun isUnivalTree(root: TreeNode?): Boolean {
val queue: Queue<TreeNode> = LinkedList<TreeNode>()
queue.offer(root)
val value = queue.peek().`val`
while (!queue.isEmpty()) {
val node = queue.poll()
if (node.`val` != value) return false
node.left?.let {
queue.offer(node.left)
}
node.right?.let {
queue.offer(node.right)
}
}
return true
}
}
코틀린은 확실히 null 처리가 편해서 좋습니다.
'알고리즘 문제 풀이 > BFS' 카테고리의 다른 글
404. Sum of Left Leaves (0) | 2021.09.09 |
---|---|
463. Island Perimeter (0) | 2021.09.01 |
993. Cousins in Binary Tree (0) | 2021.08.27 |
1325. Delete Leaves With a Given Value (0) | 2021.07.31 |
프로그래머스 - 네트워크 (0) | 2021.07.23 |