leecode刷题 对称二叉树

简介: 给定一个二叉树的根节点 `root`,检查该二叉树是否轴对称。轴对称意味着二叉树的左子树和右子树在结构和值上都完全镜像对称。示例 1 中的树 `[1,2,2,3,4,4,3]` 是对称的,而示例 2 中的树 `[1,2,2,null,3,null,3]` 不是对称的。节点数在 1 到 1000 之间,节点值范围为 -100 到 100。代码通过递归检查左右子树是否镜像对称。

给你一个二叉树的根节点 root , 检查它是否轴对称。

示例 1:
image.png

输入:root = [1,2,2,3,4,4,3]
输出:true
示例 2:
image.png

输入:root = [1,2,2,null,3,null,3]
输出:false

提示:

树中节点数目在范围 [1, 1000] 内
-100 <= Node.val <= 100

class Solution {
    public boolean isSymmetric(TreeNode root) {
        if(root==null) return true;
         return check(root.left,root.right);
    }
    public boolean check(TreeNode t1,TreeNode t2)
    {
        if(t1==null&&t2==null) return true;
        if(t1==null||t2==null)return false;
        return t1.val==t2.val&&check(t1.left,t2.right)&&check(t2.left,t1.right);
    }
}
相关文章
|
2月前
leecode刷题 二叉树的直径
给定一棵二叉树的根节点,返回该树的直径。二叉树的直径是指树中任意两个节点之间最长路径的长度,这条路径可能经过也可能不经过根节点。两节点之间路径的长度由它们之间边数表示。
|
2月前
leecode刷题 相同的树
给定两棵二叉树的根节点 p 和 q,编写一个函数来判断这两棵树是否相同。如果两棵树在结构上相同且对应节点的值相等,则认为它们是相同的。示例包括完全相同的树、结构不同或节点值不同的树。节点数在 [0, 100] 范围内,节点值在 [-10^4, 10^4] 范围内。
35 11
|
2月前
leecode 刷题 二叉树的最大深度
给定二叉树根节点 `root`,返回其最大深度。最大深度是从根节点到最远叶子节点的最长路径上的节点数。例如,对于输入 `[3,9,20,null,null,15,7]`,输出为 `3`;对于输入 `[1,null,2]`,输出为 `2`。节点数量在 `[0, 104]` 范围内,值在 `[-100, 100]` 之间。
|
2月前
leecode刷题 二叉树 中序遍历
给定二叉树根节点,返回其节点值的中序遍历。示例1:输入root=[1,null,2,3],输出[1,3,2];示例2:输入root=[],输出[];示例3:输入root=[1],输出[1]。节点数范围[0,100],值范围[-100,100]。代码实现使用递归方法完成中序遍历。
|
2月前
leecode刷题 翻转二叉树
给定一棵二叉树的根节点 `root`,翻转这棵二叉树并返回其根节点。通过递归交换每个节点的左右子树来实现翻转。示例 1:输入 `root = [4,2,7,1,3,6,9]`,输出 `[4,7,2,9,6,3,1]`。示例 2:输入 `root = [2,1,3]`,输出 `[2,3,1]`。示例 3:输入 `root = []`,输出 `[]`。树中节点数目范围在 [0, 100] 内,节点值范围为 -100 到 100。
|
9月前
|
算法
六六力扣刷题二叉树之对称二叉树
六六力扣刷题二叉树之对称二叉树
100 1
|
9月前
|
算法
刷题专栏(五):对称二叉树
刷题专栏(五):对称二叉树
62 0
|
存储 C++ 容器
剑指Offer - 面试题28:对称的二叉树
剑指Offer - 面试题28:对称的二叉树
80 0