二叉树对称,即以根节点所在为分界线,左右两半相等。
根据二叉树对称的条件,可知 左子树的左子树和右子树的右子树,左子树的右子树和右子树的左子树,左子树和右子树的值相等才可。
通过分析可知,使用递归
/* 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 isSame(pRoot.left, pRoot.right); } public boolean isSame(TreeNode left, TreeNode right) { if (left == null && right == null) { return true; } if (left == null || right == null) { return false; } return (left.val == right.val) &&isSame(left.left, right.right) && isSame(left.right, right.left); } }