小编在求职找找工作期间剑指offer上的算法题刷了很多遍,并且
每道题小编当时都总结了一种最适合面试时手撕算法的最优解法
。
考虑到
剑指offer算法题在面试中的高频出现
,小编
每天和大家分享一道剑指offer上的算法题,以及小编总结的答案。下面是
第058是
道剑指offer算法题
:
题目描述
请实现一个函数,用来判断一棵二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 分析:这道题比较简单:
如果一棵树是对称的,那么这棵树的左右子树一定是对称的
如果一棵树的左右子树不是对称了,那么这棵树一定不是对称的
所以只需要递归判断 树的子树是否是对称的即可
/*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 isSymmetric(pRoot.right,pRoot.left); } private boolean isSymmetric(TreeNode root1,TreeNode root2){ if(root1==null && root2==null) return true; if(root1==null || root2==null) return false; if(root1.val != root2.val) return false; return isSymmetric(root1.left,root2.right) && isSymmetric(root1.right,root2.left); }}
猜你还想看
七夕: 程序员的表白方式汇总(建议收藏)
长按,扫码,关注
及时收看更多精彩内容
博主:今日头条大数据工程师专注:求职 面经 源码 java 大数据技术分享
点击”阅读原文“:领取5T精品资料,面试总结、100+实战项目
我知道你 “在看”