二叉树的镜像

输入一棵二叉树,把它变成它的镜像。

这题的思路通过画图就可以很快明白。本人就不画了,有兴趣可以买书来看。这里讲下怎么做。

如果一个节点有子节点交换2个节点.....就这么简单。

上代码:

void MirrorTree(BinaryTreeNode* pRoot)
{
    if(pRoot == NULL)
        return;
    if(pRoot->p_left == NULL && pRoot->p_right == NULL)
        return;

    BinaryTreeNode* temp = pRoot->p_left;
    pRoot->p_left = pRoot->p_right;
    pRoot->p_right = temp;

    if( pRoot->p_left )
    {
        MirrorTree(pRoot->p_left);
    }

    if(pRoot->p_right)
    {
        MirrorTree(pRoot->p_right);
    }

}

 

posted @ 2013-03-04 14:43  没离开过  阅读(84)  评论(0)    收藏  举报