题目
给定一个二叉树,检查它是否是镜像对称的。
例如,二叉树 [1,2,2,3,4,4,3] 是对称的。
1
/
2 2
/ \ /
3 4 4 3
思路
-
使用递归,
代码
class Solution {
public boolean isSymmetric(TreeNode root) {
return ismirror(root,root);
}
public boolean ismirror(TreeNode t1,TreeNode t2){
if(t1==null&&t2==null)
return true;//若树节点的左子树并且右子树为空,则返true
if(t1==null||t2==null)
return false;//若树节点的左子树为空 或者 右子树为空,则返false
return (t1.val==t2.val)&&ismirror(t1.right,t2.left)&&ismirror(t1.left,t2.right);
//这个是全局的重要的算法,如果左子树与右子树的节点数相同,则接着使用ismarror方法,并递归判断
}
}