
😎풀이
isSubtree: 서브 트리가 같은지 검사
1-1. 현재 요소(root)가 null이라면, 탐색 범위 내에서 subRoot를 찾을 수 없었다는 의미 이므로 false 반환
1-2. 현재 요소(root)와 비교 요소(subRoot)를 비교하여 구조가 같다면 true 반환
1-3. 재귀적으로 subRoot에 해당하는 값을 root의 left와 right에서 탐색
isSameTree: a와 b의 구조가 같은지 검증
function isSubtree(root: TreeNode | null, subRoot: TreeNode | null): boolean {
if(!root) return false
if(isSameTree(root, subRoot)) return true
return isSubtree(root.left, subRoot) || isSubtree(root.right, subRoot)
};
function isSameTree(a: TreeNode | null, b: TreeNode | null): boolean {
if(!a && !b) return true
if(!a || !b) return false
if(a.val !== b.val) return false
return isSameTree(a.left, b.left) && isSameTree(a.right, b.right)
}