root node를 기준으로 대칭트리면 true, 아니면 false를 반환한다.
const recursive = (left: null | TreeNode, right: null | TreeNode) => {
// 2. 거르기
// 언젠가 leaf node에 도달할 때 여기 첫 번째 if를 지남. => 3. true && true 결과
if (left === null && right === null) {
console.log('끝!' , left, right)
return true;
}
if ((left === null && right !==null) || (left !== null && right === null)) return false;
if (left.val !== right.val) return false;
// 3. 대칭일 때 true 반환
return recursive(left.left, right.right) && recursive(left.right, right.left);
}
var isSymmetric = function(root: TreeNode | null) {
// 1. root에서 거르기
if (!root) return true;
return recursive(root.left, root.right);
};