/* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } }; */ class Solution { public: bool fl = true; void dfs(TreeNode* le, TreeNode* ri) { if(le==nullptr&&ri==nullptr)return; if ((le == nullptr ^ ri == nullptr) || le->val != ri->val) { fl = false; return; } dfs(le->left, ri->right), dfs(le->right, ri->left); } bool isSymmetrical(TreeNode *pRoot) { if (pRoot != nullptr)dfs(pRoot->left, pRoot->right); return fl; } };