您的位置:首页 > 职场人生

面试题:二叉树的镜像

2018-01-30 15:12 218 查看
请完成一个函数,输入一颗二叉树,该函数输出它的镜像。二叉树节点定义如下:

struct BinaryTreeNode

{

 int m_nValue;

BinaryTreeNode* m_pLeft;

BinaryTreeNode* m_pRight;

};

思路:所谓镜像,即左右对称。那我们就要写一个方法,反转左右子树即可。

void MirrorRecursively(BinaryTreeNode *pNode)

{

 if(pNode==nullptr)

 return;

 if(pNode->m_pLeft==nullptr&&pNode->m_pRight==nullptr)
 return;

BinaryTreeNode *pTemp=pNode->m_pLeft;
pNode->m_pLeft=pNode->m_pRight;
pNode->m_pRight=pTemp;
if(pNode->m_pLeft)
 MirrorRecursively(pNode->m_pLeft);

if(pNode->m_pRight)
 MirrorRecursively(pNode->m_pRight);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: