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

    对称的二叉树

    题目描述

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

    思路

    1. 先序遍历二叉树的顺序为“根->左->右”,我们定义个跟先序遍历对称的遍历顺序“跟->右->左”,如果这两个遍历的结点对应相等,则是对称二叉树
    2. 注意:因为叶子结点的左右子树在遍历结果中无法根据先后顺序区分,所以我们需要考虑到null指针,需要null指针对应也相等
    3. 如果二叉树为空,则也是对称的

    代码

    /*
    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 symmetry(pRoot.left, pRoot.right);
        }
    	boolean symmetry(TreeNode pRoot1, TreeNode pRoot2) {
    		if(pRoot1 == null && pRoot2 == null) {
    			return true;
    		}
    		if (pRoot1 == null || pRoot2 == null) {
    			return false;
    		}
    		if (pRoot1.val != pRoot2.val) {
    			return false;
    		}
    		return symmetry(pRoot1.left, pRoot2.right) && symmetry(pRoot1.right, pRoot2.left);
    	}
    }
  • 相关阅读:
    记一次在线阅卷系统设计开发总结
    卡座录音经验汇总
    TEAC 6030S 统调
    空白磁带SONY TDK 万胜,3大品牌空白磁带,入门必读
    cnetos 7 mysql 从data还原数据库
    java的BigDecimal比较大小
    nginx配置静态访问txt文件
    小程序筛选
    买分产整合
    开窗函数
  • 原文地址:https://www.cnblogs.com/rosending/p/5721038.html
Copyright © 2011-2022 走看看