101.对称二叉树
题目
LeetCode 简单
题目
给你一个二叉树的根节点 root , 检查它是否轴对称。
示例:
输入:root = [1,2,2,3,4,4,3]
输出:true
输入:root = [1,2,2,null,3,null,3]
输出:false
题解
方法:深度优先
DFS
递归
O(n) O(n)
ts
function isSymmetric(root: TreeNode | null): boolean {
const isSame = (left: TreeNode | null, right: TreeNode | null) => {
console.log('left', left?.val, 'right', right?.val)
if (!left && !right) return true
if (
left &&
right &&
left.val === right.val &&
isSame(left.left, right.right) &&
isSame(left.right, right.left)
)
return true
return false
}
return isSame(root.left, root.right)
}
const p = new Tree([1, 2, 2, 3, 4, 4, 3, 5, 6, 7, 8, 8, 7, 6, 5]),
q = new Tree([1, 2, 2, null, 3, null, 3])
console.log('🌰', isSymmetric(p.root))
console.log('🌰', isSymmetric(q.root))
方法:广度优先【todo⌛️】
BFS