题目来自剑指offer
题目:
举例:
思想:
先序遍历二叉树,每遍历一个结点时,都交换两个子树。
代码:
void MirrorRecursive(BinaryTreeNode* pRoot)
{
if (NULL == pRoot || (NULL == pRoot->m_pLeft && NULL == pRoot->m_pRight))
{
return;
}
//交换两个孩子
BinaryTreeNode* pSwapNode = pRoot->m_pLeft;
pRoot->m_pLeft = pRoot->m_pRight;
pRoot->m_pRight = pSwapNode;
//递归处理孩子
MirrorRecursive(pRoot->m_pLeft);
MirrorRecursive(pRoot->m_pRight);
}
本文介绍了一种通过递归方法实现二叉树节点左右子树互换的技术。该方法能够有效地将一棵二叉树变成其镜像,即每个节点的左子树和右子树相互对调。这一过程在算法题中经常被用到。
516

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



