W:
该题只需要遍历一遍二叉树即可,需要返回值
只需要前序递归判断外侧与内测是否相等
N:
编写完程序,列一个测试用例,顺着程序的思路跑一遍
特别注意如果相等还需要继续判断,不能直接返回
空也是对称的

/*
struct TreeNode {
    int val;
    struct TreeNode *left;
    struct TreeNode *right;
    TreeNode(int x) :
            val(x), left(NULL), right(NULL) {
    }
};
*/
class Solution {
public:
    bool Tra(TreeNode* rootl ,TreeNode* rootr){
        if(rootl== nullptr && rootr== nullptr){
            return true;
        }
        else if(rootl!= nullptr && rootr== nullptr) return false;
        else if(rootl== nullptr && rootr!= nullptr) return false;
        else if(rootl!= nullptr && rootr!= nullptr && rootl->val!=rootr->val) return false;
        else if(rootl!= nullptr && rootr!= nullptr && rootl->val==rootr->val){
//             return true;
            bool out= Tra(rootl->left,rootr->right);//如果相等还需要继续判断,不能直接返回
            bool in = Tra(rootl->right,rootr->left);
            return out&∈
        }

        return false;
    }
    bool isSymmetrical(TreeNode* pRoot) {
        if(pRoot== nullptr){
            return true;
        }
        return Tra(pRoot->left,pRoot->right);
    }

};