题解 | #递归——对称的二叉树#
对称的二叉树
https://www.nowcoder.com/practice/ff05d44dfdb04e1d83bdbdab320efbcb
/*
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
TreeNode(int x) :
val(x), left(NULL), right(NULL) {
}
};
*/
//递归方式。定义两个指针:T1,T2分别走根节点的左子树和右子树。
//当遇到一个节点空,另一个不空的时候或者两个节点的值不一致肯定不是对称树。
#include <cstddef>
class Solution {
public:
bool recur(TreeNode* T1,TreeNode* T2){
if(T1 == NULL &&T2 ==NULL) return true;
if(T1 == NULL || T2 == NULL || T1->val != T2->val) return false;
return recur(T1->left, T2->right) && recur(T1->right, T2->left);
}
bool isSymmetrical(TreeNode* pRoot) {
return recur(pRoot,pRoot);
}
};

