二叉树的经典OJ题

对称二叉树

    • 1.题目
    • 2.图形分析
    • 3.代码实现

1.题目

二叉树的经典OJ题_第1张图片

2.图形分析

二叉树的经典OJ题_第2张图片
二叉树的经典OJ题_第3张图片
二叉树的经典OJ题_第4张图片

二叉树的经典OJ题_第5张图片

3.代码实现

class Solution {
    public boolean isSymmetric(TreeNode root) {
           if(root == null){
               return true;
           }
           return isSymmetricchild(root.left,root.right);
    }
    private boolean isSymmetricchild(TreeNode leftTree,TreeNode rightTree){
        //如果一棵树为空,一棵树不为空的情况
        if(leftTree == null && rightTree != null || leftTree != null&& rightTree == null){
            return false;
        }
        //两棵树都为空的情况
        if(leftTree == null && rightTree == null){
            return true;
        }
        //两棵树都不为空的情况下,比较它们的值
        if(leftTree.val != rightTree.val){
            return false;
        }
        //如果想是对称二叉树 那么必须左子树的左边等于右子树的右边,右子树的左边等于左子树的右边
        return isSymmetricchild(leftTree.left,rightTree.right)&& isSymmetricchild(leftTree.right,rightTree.left);
    }
}

你可能感兴趣的:(数据结构,算法)