알고리즘

LeetCode - Same Tree Javascript

jaewoo 2024. 3. 30. 15:56

 

 

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);
}