zoukankan      html  css  js  c++  java
  • 剑指Offer_58_对称的二叉树

    题目描述

    请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。

    解题思路

    从根结点开始判断,首先判断左右子树是否相同,然后对于相同的结点,判断两个结点的左子树和另一个结点的右子树是否相同,相同说明是对称的。否则就是不对称的,依次向下递归。

    实现

    /*树结点的定义*/
    public class TreeNode {
        int val = 0;
        TreeNode left = null;
        TreeNode right = null;
    
        public TreeNode(int val) {
            this.val = val;
    
        }
    
    }
    /*实现*/
    public class Solution {
        boolean isSymmetrical(TreeNode pRoot)
        {
            if (pRoot == null) return true;
            return recursion(pRoot.left, pRoot.right);
        }
    
        private boolean recursion(TreeNode left, TreeNode right) {
            if (left == null && right == null) return true;
            else if (left == null || right == null) return false;
            if (left.val == right.val) {
                return recursion(left.left, right.right) && recursion(left.right, right.left);
            }
            return false;
        }
    }
    
  • 相关阅读:
    导出数据到Excel文件
    百度地图
    Web报表-RDLC报表的使用
    web开发经验—MVC 图表Chart
    数据库面试题
    滑块插件jRange的使用
    matplotlib绘图使用数据
    JS面向对象之封装
    如何使用Animate.css插件库
    圣杯布局,双飞翼布局
  • 原文地址:https://www.cnblogs.com/ggmfengyangdi/p/5814478.html
Copyright © 2011-2022 走看看