【题目】请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。
1 package com.exe7.offer; 2 3 /** 4 * 【题目】请实现一个函数,用来判断一颗二叉树是不是对称的。 5 * 注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 6 * @author WGS 7 * 8 */ 9 public class SymmetricalTreeNode {10 public class TreeNode{11 int val=0;12 TreeNode left=null;13 TreeNode right=null;14 15 public TreeNode(int val){16 this.val=val;17 }18 }19 20 21 public boolean isSymmetrical(TreeNode pRoot){22 if(pRoot==null) return false;23 return isSymmetrical(pRoot.left ,pRoot.right);24 }25 26 27 private boolean isSymmetrical(TreeNode pLeft, TreeNode pRight) {28 if(pLeft==null && pRight==null ) return true;29 if(pLeft==null || pRight==null ) return false;30 if(pLeft.val!=pRight.val)31 return false;32 return isSymmetrical(pLeft.left, pRight.right)33 && isSymmetrical(pLeft.right, pRight.left);34 } 35 }