剑指offer——对称的二叉树判断
2016-07-18 23:25
274 查看
题目描述:
请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。思路:
想一下打印输出某二叉树的镜像,实现的思路是:采用层序遍历的思路对每一个遍历的节点,如果其有孩子节点,那么就交换两者。直到遍历的节点没有孩子节点为止,然而此题是对二叉树木镜像的判断,明显是更简单的,只需要进行两个判断:对节点的左孩子与其兄弟节点右孩子的判断以及对节点右孩子与其兄弟节点左孩子的判断。这样就完成对对一棵二叉树是否对称的判断。代码实现:
/* 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 isSymmetricalCore(pRoot.left,pRoot.right); } private boolean isSymmetricalCore(TreeNode left,TreeNode right){ if (left == null && right == null) return true; if (left == null || right == null) return false; if (left.val == right.val) return isSymmetricalCore(left.right, right.left) && isSymmetricalCore(left.left, right.right); return false; } }
相关文章推荐
- React Native - window 环境安装与配置
- CodeForces 347A Difference Row (水题)
- WEB前端 :“懒人”养成计划
- html中的a标签(超链接)的使用
- butterknife8.0.1提示NullPointerException空指针的问题
- EJS.Helpers进阶
- html浏览器
- 《React-Native系列》4、表单界面代码编写
- HTMLParser使用--只是为了保存
- CSS的相对定位和绝对定位
- HTML之class属性、table元素、块级和内联元素
- windows7 下编译 Microsoft的 caffe step by step
- JS冲突解决方法
- JavaScript 表单验证
- 再探JS数组原生方法—没想到你是这样的数组
- NodeJS学习系列课程笔记(NodeJS util工具类相关使用方法)
- 什么才是正确的javascript数组检测方式
- 使用express + socket.io实现多房间聊天应用
- jquery ajax
- HTML与SEO的学习之路