剑指offer-对称的二叉树
Posted moonbeautiful
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer-对称的二叉树相关的知识,希望对你有一定的参考价值。
题目描述
请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。
题目链接:
分析:
根节点的左右节点对称为对称二叉树。
子问题:left.left 与 right.right 对称,left.right 与 right.left 对称。
/* 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 judge(pRoot.left,pRoot.right); } public boolean judge(TreeNode a,TreeNode b){ //相同为true if(a == null && b == null){ return true; } //只有一个为null,说明不对称 if(a == null||b==null){ return false; } //相同继续判断左右节点的对称性,不同则返回false if(a.val == b.val){ return judge(a.left,b.right)&&judge(a.right,b.left); }else{ return false; } } }
以上是关于剑指offer-对称的二叉树的主要内容,如果未能解决你的问题,请参考以下文章