您的位置:首页 > 其它

二叉树的镜像

2014-02-15 21:51 141 查看
#include<queue>
using namespace std;
struct binaryTreeNode
{
int value;
binaryTreeNode *pLeft;
binaryTreeNode *pRight;
};

//二叉树的镜像
bool binaryTreeMirror(binaryTreeNode *pRoot)
{
if(0==pRoot)	return false;
//层次遍历
queue<binaryTreeNode*> unvisited;
unvisited.push(pRoot);
while(!unvisited.empty())
{
binaryTreeNode *pNode=unvisited.front();
unvisited.pop();
binaryTreeNode *tmp=pNode->pLeft;
pNode->pLeft=pNode->pRight;
pNode->pRight=tmp;
if(pNode->pLeft)	unvisited.push(pNode->pLeft);
if(pNode->pRight)	unvisited.push(pNode->pRight);
}
return true;
}

int main()
{
binaryTreeNode n1,n2,n3,n4,n5,n6;
n1.value=1,n2.value=2,n3.value=4,n4.value=7,n5.value=6,n6.value=8;
n1.pLeft=&n2,n1.pRight=&n3;
n2.pLeft=&n4,n2.pRight=0;
n3.pLeft=&n5,n3.pRight=&n6;
n4.pLeft=n4.pRight=0;
n5.pLeft=n5.pRight=0;
n6.pLeft=n6.pRight=0;
binaryTreeMirror(&n1);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  二叉树