判断树是否结构对称
来源:互联网 发布:鞍山北国知春房价 编辑:程序博客网 时间:2024/06/05 19:56
题目描述
请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。
析:
法1:网友方法
boolean isSymmetrical(TreeNode pRoot) { if (pRoot == null) return true; return f(pRoot.left,pRoot.right); } boolean f(TreeNode t1, TreeNode t2) { if (t1 == null && t2 == null) return true; if (t1 != null && t2 != null) return t1.val == t2.val && f(t1.left,t2.right) && f(t1.right, t2.left); return false; }
法2:自己写利用层次遍历,需要注意的是层次遍历遇到null的结点也需要放入考虑,因为可能null都在一侧导致左右不对称
/*public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}*/import java.util.*;public class Solution { boolean isSymmetrical(TreeNode pRoot) { if(pRoot==null) return true; List<TreeNode> list1 = new ArrayList<>(); List<TreeNode> list2 = new ArrayList<>(); list1.add(pRoot); boolean flag =true; while(!list1.isEmpty() && flag){ list2.clear(); for(int i=0;i<list1.size();i++){ // 此处不能把null结点排除在外,因为可能null都在右子树上而左子树没有 list2.add(list1.get(i).left); list2.add(list1.get(i).right); } int t = list2.size(); for(int i=0;i<t/2;i++){ if( (list2.get(i)!=null && list2.get(t-1-i)==null) || (list2.get(i)==null && list2.get(t-1-i)!=null) ) return false; if( list2.get(i)!=null && list2.get(t-1-i)!=null && list2.get(i).val!=list2.get(t-1-i).val ) return false; } int nullNum=0; list1.clear(); for(int i=0;i<t;i++){ if(list2.get(i)!=null){ nullNum++; list1.add(list2.get(i)); } } if(nullNum==0) flag = false; } return true; }}
0 0
- 判断树是否结构对称
- 判断树是否对称
- 判断二叉树是否对称
- 判断二叉树是否对称
- 判断二叉树是否对称
- 判断二叉树是否对称
- 判断二叉树是否对称
- 判断二叉树是否对称
- js判断是否二叉树是否对称
- 【二叉树】判断二叉树是否对称
- 判断是否为对称二叉树
- 判断一个二叉树是否对称
- 判断二叉树是否相同,对称
- 判断树是否对称 101. Symmetric Tree
- 剑指offer-判断树是否对称
- 剑指offer-判断二叉树是否对称
- LeetCode基础--二叉树-判断是否对称
- 判断字符串是否对称
- 简单学习自动化测试框架(selenium)
- Flume中的拦截器(Interceptor)介绍与使用(二)
- reportviewer使用方法
- 冷知识 —— 四大
- 自动化构建工具--gulp中gulpfile的基础配置
- 判断树是否结构对称
- Python的sys.path妙用
- ubuntu16.10安装Rstudio时依赖包的解决
- 关于Gradle的一些小技巧
- linux printk解释
- 20170324全志R16的tinav2.1系统的bt传输文件不通,蓝牙音频通!
- tf.train.Saver
- flex类型强转as
- 算法-动态规划(1)