面试题:二叉树的镜像
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);
}
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);
}
相关文章推荐
- 二叉树面试题(二)---求一颗二叉树的镜像
- 面试题19:二叉树的镜像
- 面试题19:二叉树的镜像
- 剑指offer 面试题19 二叉树的镜像
- 剑指Offer:面试题19——二叉树的镜像(java实现)
- 剑指offer 面试题19 二叉树的镜像
- 面试题19 :二叉树的镜像
- 剑指offer面试题19 二叉树的镜像
- 【剑指offer】面试题27:二叉树的镜像
- 剑指offer--面试题19:二叉树的镜像--Java实现
- 面试题19:二叉树的镜像
- 剑指offer面试题19——二叉树的镜像
- 剑指offer——面试题19:二叉树的镜像
- 剑指offer代码解析——面试题19二叉树的镜像
- 剑指Offer面试题:18.二叉树的镜像
- 剑指Offer---面试题19:镜像二叉树
- 剑指offer-第四章解决面试题的思路(二叉树的镜像)
- 剑指offer之面试题19:二叉树的镜像