题目28:对称二叉树
题目描述:
请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。
解题思路:
遍历过程中考虑空二叉树
二叉树的前序遍历与对称前序遍历相同则是对称的
代码实现
public boolean isSymmetrical(TreeNode root) {
return isSymmetrical(root,root);
}
public boolean isSymmetrical(TreeNode root1,TreeNode root2) {
if(root1==null&&root2==null) {
return true;
}
if(root1==null||root2==null) {
return false;
}
if(root1.val!=root2.val) {
return false;
}
return isSymmetrical(root1.left,root2.right)&&isSymmetrical(root1.right,root2.left);
}
考点收获:
- n左右节点为空的二叉树对称
- 画出图形,找其中的规律