首页 > 代码库 > 剑指offer28题
剑指offer28题
判断一颗二叉树,是不是对称的。如果一颗二叉树和它的镜像一样,则它是对称的。
举例如下,该树为对称的。但这个就不是。
对于这个题目。我第一眼想到的办法是,首先我把一棵树转换成它的镜像,然后通过先序,读取镜像树和原始树的数据,并保存在数组中,或者栈中。,然后对着2个数组,或者栈进行匹配。但耗时比较长。书中给出的答案是实现一种对称序列。具体不多说,直接上代码。
package com.algorithm04; import com.tools.TreeBinaryFunction; import com.tools.TreeNode; public class Algorithm28 { public static boolean Solution(TreeNode root){ if(root==null){ return true; } return Solution(root.left,root.right); } public static boolean Solution(TreeNode leftNode , TreeNode rightNode){ if(leftNode == null && rightNode == null){ return true; } if(leftNode == null || rightNode == null){ return false; } if(leftNode.val == rightNode.val) return Solution(leftNode.left, rightNode.right)&&Solution(leftNode.right, rightNode.left); return false; } public static void main(String[] args) { TreeNode treeNode = new TreeNode(0); TreeBinaryFunction.CreateTreeBinary(treeNode); boolean isflag = Solution(treeNode); System.err.println(isflag); } }
剑指offer28题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。