美文网首页
LeetCode Invert Binary Tree(镜像)

LeetCode Invert Binary Tree(镜像)

作者: codingcyx | 来源:发表于2018-04-15 22:09 被阅读0次

二叉树的镜像。

解法一(dfs recursive):

TreeNode* invertTree(TreeNode* root) {
        if(!root) return NULL;
        root -> left = invertTree(root -> left);
        root -> right = invertTree(root -> right);
        swap(root -> left, root -> right);
        return root;
    }

解法二(bfs queue):

TreeNode* invertTree(TreeNode* root) {
        queue<TreeNode*> que;
        if(root == NULL) return NULL;
        que.push(root);
        while(!que.empty()){
            TreeNode* tmp = que.front();
            que.pop();
            swap(tmp -> left, tmp -> right);
            if(tmp -> left)
                que.push(tmp -> left);
            if(tmp -> right)
                que.push(tmp -> right);
        }
        return root;
    }

注:解法二是层序遍历bfs,用队列维护需要处理的结点。也可以把队列换成栈,这样就是dfs,处理方法类似于bfs。区别只在于处理顺序。

相关文章

网友评论

      本文标题:LeetCode Invert Binary Tree(镜像)

      本文链接:https://www.haomeiwen.com/subject/agmjkftx.html