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

题目来自剑指offer

题目:

每日一题(31) - 二叉树的镜像_第1张图片

举例:

每日一题(31) - 二叉树的镜像_第2张图片

思想:

先序遍历二叉树,每遍历一个结点时,都交换两个子树。

代码:

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);
}

你可能感兴趣的:(每日一题(31) - 二叉树的镜像)