zoukankan      html  css  js  c++  java
  • 牛客(58)对称的二叉树

    //    题目描述
    //    请实现一个函数,用来判断一颗二叉树是不是对称的。
    //    注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。
    
        public class TreeNode {
            int val = 0;
            TreeNode left = null;
            TreeNode right = null;
    
            public TreeNode(int val) {
                this.val = val;
    
            }
    
        }
        boolean isSymmetrical(TreeNode pRoot)
        {
    //        检查不过
    //        if (pRoot==null){
    //            return false;
    //        }
    //        二叉树镜像
            TreeNode image = getImage(pRoot);
    //        比较
            return isSymmetrical(pRoot,image);
        }
    
        private boolean isSymmetrical(TreeNode pRoot, TreeNode image) {
            if (pRoot==null&&image==null){
                return true;
            }else if (pRoot==null||image==null){
                return false;
            }
    
    
            if (pRoot.val==image.val){
                return isSymmetrical(pRoot.right,image.right)&&isSymmetrical(pRoot.left,image.left);
            }
            return false;
        }
    
        private TreeNode getImage(TreeNode pRoot) {
            if (pRoot==null){
                return null;
            }
            TreeNode image = new TreeNode(pRoot.val);
            image.right = getImage(pRoot.left);
            image.left = getImage(pRoot.right);
            return image;
        }
  • 相关阅读:
    java8中常用的新功能
    代码走查案例2
    redis的key设置每天凌晨过期的思路
    代码走查案例1
    一场没有序列化引发的血案
    面试总结
    hr相关的
    mysql底层原理
    如何学好并发编程
    流程图总结
  • 原文地址:https://www.cnblogs.com/kaibing/p/9109234.html
Copyright © 2011-2022 走看看