现在的位置: 首页 > 综合 > 正文

每日一题(31) – 二叉树的镜像

2013年10月10日 ⁄ 综合 ⁄ 共 340字 ⁄ 字号 评论关闭

题目来自剑指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);
}

抱歉!评论已关闭.