您的位置:首页 > Web前端

剑指Offer-19-二叉树的镜像

2015-11-14 11:49 519 查看
题目:

完成一个函数,输入一个二叉树,该函数输入二叉树的镜像。

原二叉树
8
1       2
3       4
则输出
8
2       1
4       3


思路:

前序遍历二叉树的每个结点,如果遍历到的结点有子结点,就交换它的两个左右子节点,当交换完所有非叶子结点的左右子结点之后,就得到了二叉树的镜像。

#include <iostream>
using namespace std;

struct BinaryTreeNode {
int m_nValue;
struct BinaryTreeNode *m_pLeft;
struct BinaryTreeNode *m_pRight;
};

void MirrorRecursively(BinaryTreeNode *pNode) {
if(pNode == NULL)
return;
if(pNode->m_pLeft==NULL && pNode->m_pRight==NULL)
return;
BinaryTreeNode *t = pNode->m_pLeft;
pNode->m_pLeft = pNode->m_pRight;
pNode->m_pRight = t;
MirrorRecursively(pNode->m_pLeft);
MirrorRecursively(pNode->m_pRight);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: