标签:迭代 strong || bsp 平衡 平衡二叉树 注意 试题 pre
1、题目描述:
请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。
2、思路:
主要还是利用遍历来实现,如果一颗二叉树的前序遍历 根左右 结果,前序遍历的对称遍历方式 根右左,两个结果是一样的,这颗二叉树就是平衡二叉树。对于二叉树遍历,只能用迭代来实现。
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) { return isSymmetrical(pRoot,pRoot); } public static boolean isSymmetrical(TreeNode pRoot1,TreeNode pRoot2){ //所有的遍历节点全都比较完了 if(pRoot1==null && pRoot2==null){ return true; } //若比较的两个节点不一起遍历完,就返回false if(pRoot1==null || pRoot2==null){ return false; } //遍历的两个节点值不相等,返回false if(pRoot1.val != pRoot2.val){ return false; } //前序遍历 根左右,前序遍历的对称遍历方式 根右左,这两个结果都相同,这个二叉树就对称 return isSymmetrical(pRoot1.left,pRoot2.right) && isSymmetrical(pRoot1.right,pRoot2.left); } }
标签:迭代 strong || bsp 平衡 平衡二叉树 注意 试题 pre
原文地址:https://www.cnblogs.com/guoyu1/p/12241357.html