注意跟子树那个题的区别
这个是两个必须完全一样才行
而子树那个只要有包含关系即可
由以上区别private函数差别较大
Symmetric Tree
Given a binary tree, check whether it is a mirror of itself
(ie, symmetric around its center).
For example, this binary tree [1,2,2,3,4,4,3] is symmetric:
1
/ \
2 2
/ \ / \
3 4 4 3
But the following [1,2,2,null,3,null,3] is not:
1
/ \
2 2
\ \
3 3
- 为空则对称
- 判断左右子树是不是对称(仿照same(root1,root2)来写)
class Solution {
public boolean isSymmetric(TreeNode root) {
if(root==null){
return true;
}
return issame(root.left,root.right);
}
//判断是否对称,而不是判断是否是相同
boolean issame(TreeNode root1,TreeNode root2){
if(root1==null&&root2==null){
return true;
}
//其实这是递归的出口,两个树同时遍历到为空的情况下没有返回false,就可以返回true了
if(root1==null||root2==null){
return false;
}
//递归的出口2,两个树只有一个遍历到了空,就返回false了
if(root1.val!=root2.val){//列举≠的
return false;
}
return issame(root1.left,root2.right)&&issame(root1.right,root2.left);
}
}