二叉树镜像问题

来源:互联网 发布:概率影响矩阵 编辑:程序博客网 时间:2024/06/06 08:31

对一个二叉树进行镜像翻转,这个问题可以归结为二叉树左右节点互换问题。


我们只需要简单的通过考虑假设节点只有父节点、左孩子和右孩子的时候问题,接下来通过递归的方式就可以解决这个问题。

代码如下:

/*struct TreeNode {int val;struct TreeNode *left;struct TreeNode *right;TreeNode(int x) :val(x), left(NULL), right(NULL) {}};*/class Solution {public:    void Mirror(TreeNode *pRoot) {        if(pRoot != NULL){            TreeNode* temp;            temp = pRoot->left;            pRoot->left = pRoot->right;            pRoot->right = temp;            if(pRoot->left != NULL){                Mirror(pRoot->left);            }            if(pRoot->right != NULL){                Mirror(pRoot->right);            }        }    }};

最后,可以考虑通过后序遍历的方式访问节点,然后重建这个二叉树来解决问题。

原创粉丝点击