leetcode Symmetric Tree

来源:互联网 发布:java防止api重复提交 编辑:程序博客网 时间:2024/06/05 07:42

class Solution {

public:

    bool isSymmetric(TreeNode* root) {

        if(!root)return true;

        queue<TreeNode*> q;

        q.push(root);

        while(!q.empty())

        {

            int n=(int)q.size();

            vector<int> check;

            for(int i=1;i<=n;i++)

            {

                TreeNode* node=q.front();

                q.pop();

                if(node->left) {

                    q.push(node->left);

                    check.push_back(node->left->val);

                }

                else

                    check.push_back(-1);

                if(node->right){

                    q.push(node->right);

                    check.push_back(node->right->val);

                }

                else

                    check.push_back(-1);

            }

            int x=(int) check.size();

            int t=x/2;

            for(int i=0;i<=t-1;i++)

            {

                if(check[i]!=check[x-1-i])

                    returnfalse;

            }

        }

        returntrue;

    }

};