题目
代码如下给定一颗二叉树,将其左右翻转。
如下图
void CBinaryTree::Reverse()
{
_Reverse(m_pRoot);
}
void CBinaryTree::_Reverse(STreeNode* pRoot)
{
if (pRoot)
{
swap(pRoot->pLeft, pRoot->pRight);
_Reverse(pRoot->pLeft);
_Reverse(pRoot->pRight);
}
}
int _tmain(int argc, _TCHAR* argv[])
{
CBinaryTree tree;
for (int i = 0; i < 10; i++)
tree.Insert(rand() % 100);
tree.InOrder(PrintValue);
tree.PreOrder(PrintValue);
tree.Reverse();
tree.InOrder(PrintValue);
tree.PreOrder(PrintValue);
system("pause");
return 0;
}