题解 | #对称的二叉树#
对称的二叉树
https://www.nowcoder.com/practice/ff05d44dfdb04e1d83bdbdab320efbcb
依然选择使用递归。判断是不是对称二叉树,主要看处于对称位置上的节点的值是不是一样,并且以中间为对称轴,要把左儿子的左儿子和右边的幼儿子进行比较。
/**
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param pRoot TreeNode类
* @return bool布尔型
*/
bool check(struct TreeNode *left,struct TreeNode *right){
if(!left && right){
return false;
}
else if(left && !right){
return false;
}
else if(!left && !right){
return true;
}
else{
if(left -> val != right-> val ){
return false;
}
else return check(left -> left,right -> right) && check(left -> right,right -> left);
}
return false;
};
bool isSymmetrical(struct TreeNode* pRoot ) {
// write code here
if(!pRoot)return true;
return check(pRoot->left,pRoot->right);
}
