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

    题目描述

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

    解题思路

    采用递归即可
     首先根节点以及其左右子树,左子树的左子树和右子树的右子树相同
     左子树的右子树和右子树的左子树相同即可,采用递归
     非递归也可,采用栈或队列存取各级子树根节点
     

    代码如下

    boolean isSymmetrical(TreeNode pRoot)
        {    boolean flag=true;
            if (pRoot==null||(pRoot.left==null&&pRoot.right==null)) {
                return true;
            }
            TreeNode leftNode=pRoot.left;
            TreeNode rightNode=pRoot.right;
            
            return comRoot(leftNode,rightNode);
            
        }
    
        private boolean comRoot(TreeNode leftNode, TreeNode rightNode) {
            if(leftNode == null) return rightNode==null;
            if(rightNode == null) return false;
            if (leftNode.val!=rightNode.val) {
                return false;
            }
            
            return comRoot(leftNode.right, rightNode.left)&&comRoot(leftNode.left, rightNode.right);
        }
  • 相关阅读:
    android-手势密码
    MS SQL 技巧总结--持续更新
    MySQL 笔记一
    spring 家族
    Java集合
    javaScript
    java 知识点随记
    MySQL 知识点随记
    odoo 权限杂记
    win10 Ubuntu子系统安装&odoo10社区版安装
  • 原文地址:https://www.cnblogs.com/Transkai/p/11416203.html
Copyright © 2011-2022 走看看