1、问题概述:给一个二叉树,看是否按轴对称
2、示例
示例 1:
输入:root = [1,2,2,3,4,4,3] 输出:true
示例 2:
输入:root = [1,2,2,null,3,null,3] 输出:false
3、分析
(1)判断为空的现象:如果都为空则为true,2者有一个为空则为false
(2)进行递归,因为要遍历2个树是否为,参数传左子树和右子树
4、代码
cpp
bool judgeSymmetric(struct TreeNode *root1,struct TreeNode *root2){
if(root1==NULL && root2==NULL) return true;
if(root1==NULL && root2!=NULL) return false;
if(root1!=NULL && root2==NULL) return false;
if(root1->val==root2->val){
return judgeSymmetric(root1->left,root2->right) && judgeSymmetric(root1->right,root2->left);
} else {
return false;
}
}
bool isSymmetric(struct TreeNode* root) {
return judgeSymmetric(root,root);
}