标签:
请完成一个函数,输入一个二叉树,该函数输出它的镜像。
一个二叉树的镜像,他的左子树是原二叉树的右子树,而他的右子树是原二叉树的左子树,而他的子树也是如此。那么,为了得到二叉树的镜像,我们可以把二叉树的左右子树交换,对于其子树,也是如此。该算法用递归实现最符合要求。
对于二叉树Root为NULL指针的处理。
1 void MirrorRecursively(BinaryTreeNode* pNode) 2 { 3 if (pNode == NULL) 4 return; 5 6 if (pNode->m_pLeft == NULL && pNode->m_pRight == NULL) 7 return; 8 9 BinaryTreeNode* tmp = pNode->m_pLeft; 10 pNode->m_pLeft = pNode->m_pRight; 11 pNode->m_pRight = tmp; 12 13 MirrorRecursively(pNode->m_pLeft); 14 MirrorRecursively(pNode->m_pRight); 15 }
标签:
原文地址:http://www.cnblogs.com/wangjzh/p/4349841.html