首页 > 其他分享 >对称二叉树

对称二叉树

时间:2022-12-09 17:01:40浏览次数:31  
标签:right TreeNode val 二叉树 node1 对称 node2 节点

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

  • 使用递归求解
  • 递归判断左节点的左子树和右节点的右子树是否相等,左节点的右子树和右节点的左子树是否相等

  • 如判断上图树是否为对称二叉树,判断步骤
    • 判断1的左结点是否等于1的右节点
    • 判断2的左结点是否等于2的右节点
    • 判断2的右节点是否等于2的左结点
class Solution {
    public boolean isSymmetric(TreeNode root) {
        return check(root,root);
    }

    public boolean check(TreeNode node1,TreeNode node2){
        //如果两个节点都为空直,则相等,返回true
        if (node1 == null && node2 == null){
            return true;
        }
        //如果两个节点其中一个为空,则不相等,返回false
        if (node1 == null || node2 == null){
            return false;
        }

        //判断两个值是否相等  递归判断两个节点的左子节点和右子节点是否相等
        return node1.val == node2.val && check(node1.left,node2.right) && check(node1.right,node2.left);
    }
}
  • 树节点
class TreeNode {
    int val;
    TreeNode left;
    TreeNode right;
    TreeNode() {}
    TreeNode(int val) { this.val = val; }
    TreeNode(int val, TreeNode left, TreeNode right) {
        this.val = val;
        this.left = left;
        this.right = right;
    }
}

标签:right,TreeNode,val,二叉树,node1,对称,node2,节点
From: https://www.cnblogs.com/blackyoumo/p/16969398.html

相关文章