Const
Definition for a binary tree node. class TreeNode { val: number left: TreeNode | null right: TreeNode | null constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) { this.val = (val===undefined ? 0 : val) this.left = (left===undefined ? null : left) this.right = (right===undefined ? null : right) } }
如果一颗二叉树的所有子树的左右子树都轴对称,那么这棵二叉树就轴对称。
/**
* Definition for a binary tree node.
* class TreeNode {
* val: number
* left: TreeNode | null
* right: TreeNode | null
* constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
* this.val = (val===undefined ? 0 : val)
* this.left = (left===undefined ? null : left)
* this.right = (right===undefined ? null : right)
* }
* }
*/
function isSymmetric(root: TreeNode | null): boolean {
// 判断一颗二叉树轴对称就看它的所有子树的左右子树是否轴对称,如果是那么整棵二叉树就轴对称
function dfs(n1: TreeNode | null, n2: TreeNode | null): boolean {
if (!n1 && !n2) {
return true;
}
if (!n1 || !n2) {
return false;
}
return n1.val === n2.val && dfs(n1.left, n2.right) && dfs(n1.right, n2.left);
}
return !!root && dfs(root.left, root.right);
};
101.对称二叉树
给你一个二叉树的根节点
root
,检查它是否轴对称。示例 1:
输入:
root = [1,2,2,3,4,4,3]
输出:
true
示例 2:
输入:
root = [1,2,2,null,3,null,3]
输出:
false
提示:
[1, 1000]
内-100 <= Node.val <= 100