二叉树的镜像
2014-04-28 19:54
120 查看
完成一个函数,输入一个二叉树,该函数输出它的镜像
我们先先序遍历这棵树的每个结点,如果遍历到的结点有子结点,就交换它的两个子结点。当交换完所有非叶子结点之后,就得到树的镜像。
void Mirror(BinaryTreeNode* pHead) { if ( pHead == NULL || ( pHead->m_pLeft == NULL && pHead->m_pRight == NULL )) { return; } else { BinaryTreeNode* pTemp = pHead->m_pRight ; pHead->m_pRight = pHead->m_pLeft ; pHead->m_pLeft = pTemp ; } Mirror(pHead->m_pLeft); Mirror(pHead->m_pRight); }
我们先先序遍历这棵树的每个结点,如果遍历到的结点有子结点,就交换它的两个子结点。当交换完所有非叶子结点之后,就得到树的镜像。