Same Tree 의 경우 두 이진트리가 같은지 확인하는 문제이다. 두 이진트리가 같다는것은 두 트리의 구조가 동일하며, 노드들의 값이 모두 같아야 한다는 것을 의미하는 것이다. 재귀적으로 두 트리를 동시에 탐색하는 방식으로 풀었다. 각 단게에서 현재 노드의 값이 같은지 확인하고 왼쪽 자식과 오른쪽 자식을 각각 재귀적으로 비교하면 정답이다.
p = [1,2,3];
q = [1,2,3];
function TreeNode(val, left, right) {
this.val = (val===undefined ? 0 : val)
this.left = (left===undefined ? null : left)
this.right = (right===undefined ? null : right)
}
정답
var isSameTree = function(p, q) {
if(p === null && q === null) return true; //둘다 null 일 경우
if(p === null || q === null || q.val !== p.val) return false; //한쪽이 null 이거나 값이 다를떄
return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
}
'알고리즘' 카테고리의 다른 글
프로그래머스 - 추억 점수(Javascript)풀이 (0) | 2024.06.05 |
---|---|
프로그래머스 - 달리기 경주(Javascript)풀이 (0) | 2024.05.08 |
백준 No.17396 백도어 - JAVA (0) | 2023.05.07 |
백준 No.18243 Small World Network - JAVA (0) | 2023.05.06 |
백준 No.11403 경로 찾기 - JAVA (0) | 2023.05.05 |