对称二叉树
- 1.题目
- 2.图形分析
- 3.代码实现
1.题目
2.图形分析
3.代码实现
class Solution {
public boolean isSymmetric(TreeNode root) {
if(root == null){
return true;
}
return isSymmetricchild(root.left,root.right);
}
private boolean isSymmetricchild(TreeNode leftTree,TreeNode rightTree){
//如果一棵树为空,一棵树不为空的情况
if(leftTree == null && rightTree != null || leftTree != null&& rightTree == null){
return false;
}
//两棵树都为空的情况
if(leftTree == null && rightTree == null){
return true;
}
//两棵树都不为空的情况下,比较它们的值
if(leftTree.val != rightTree.val){
return false;
}
//如果想是对称二叉树 那么必须左子树的左边等于右子树的右边,右子树的左边等于左子树的右边
return isSymmetricchild(leftTree.left,rightTree.right)&& isSymmetricchild(leftTree.right,rightTree.left);
}
}