题解 | 对称的二叉树
对称的二叉树
https://www.nowcoder.com/practice/ff05d44dfdb04e1d83bdbdab320efbcb
/**
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
* };
*/
class Solution {
public:
bool isSymmetrical(TreeNode* pRoot) {
if (pRoot == nullptr) return true;
bool flag = true;
function<void(TreeNode*, TreeNode*)> dfs = [&](TreeNode* l, TreeNode* r) {
if (l == nullptr && r == nullptr) return;
if (l == nullptr || r == nullptr) {
flag = false;
return;
}
if (l->val != r->val) {
flag = false;
return;
}
dfs(l->left,r->right);
dfs(l->right,r->left);
};
dfs(pRoot->left,pRoot->right);
return flag;
}
};