728x90
본 알고리즘 풀이는 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 처리가 편해서 좋습니다.
728x90
반응형
'알고리즘 문제 풀이 > 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 |