首页 > 其他 > 详细

剑指offer 58.树 对称的二叉树

时间:2019-08-27 10:45:51      阅读:54      评论:0      收藏:0      [点我收藏+]

题目描述

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

解题思路

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

代码如下

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);
    }

 

剑指offer 58.树 对称的二叉树

原文:https://www.cnblogs.com/Transkai/p/11416203.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!