Invert Binary Tree

来源:互联网 发布:linux解压tar.xz文件 编辑:程序博客网 时间:2024/05/19 22:27

反转二叉树,没仔细看题,层序遍历的思想,写完WA了,一看错误数据,尴尬的反转错了


    TreeNode* invertTree(TreeNode* root) {        queue<TreeNode*> q;        TreeNode* newroot = root;        q.push(root);        while(!q.empty()){            TreeNode* temp = q.front();            if(temp == NULL){                return NULL;            }            q.pop();            if(temp->left != NULL && temp->right !=NULL){                int tt = temp->left->val;                temp->left->val = temp->right->val;                temp->right->val = tt;                q.push(temp->left);                q.push(temp->right);            }        }        return newroot;    }
 emmm ..重写

    TreeNode* invertTree(TreeNode* root) {        if(root == NULL){            return NULL;        }        queue<TreeNode*> q;        TreeNode* newroot = root;        q.push(root);        while(!q.empty()){                  TreeNode* temp = q.front();            q.pop();            TreeNode* left = temp->left;             temp->left = temp->right;            temp->right = left;               if(temp->left)                q.push(temp->left);            if(temp->right)                q.push(temp->right);        }        return newroot;    }