最终的实现结果如图所示:

过程为:先前序遍历整棵树的节点,如果遍历到的节点有子节点,就交换它的两个子节点,当交换完它所有的非叶子节点的左右子节点之后,就得到了树的镜像
代码实现如下:
void* Mirror(TreeNode *pRoot)
{
if(pRoot==NULL)
{
return;
}
if(pRoot->left==NULL&&pRoot->right==NULL)
{
return;
}
TreeNode* pLeft=pRoot->left;
pRoot->left=pRoot->right;
pRoot->right=pLeft;
if(pRoot->left!=NULL)
{
Mirror(pRoot->left);
}
if(pRoot->right!=NULL)
{
Mirror(pRoot->right);
}
}
本文介绍了一种通过递归方式实现的二叉树镜像翻转算法。该算法首先判断根节点是否为空,然后检查当前节点是否为叶子节点。如果不是叶子节点,则交换其左右子节点,并继续递归地翻转左右子树。
203

被折叠的 条评论
为什么被折叠?



