首页 > 代码库 > 二叉树镜像
二叉树镜像
输入一个二叉树,输出其镜像。
九度OJ的测试很蛋疼啊~
这里,我先写一个求二叉树镜像的代码,使用自己的测试代码:
思路很简单:先判断是否左右孩子都为空,如果不是,则交换,然后递归左右子树。其实是先序遍历。
/* 二叉树镜像 by Rowandjj 2014/8/1 */ #include<iostream> using namespace std; typedef struct _BNODE_ { int data; struct _BNODE_ *lChild; struct _BNODE_ *rChild; }BNode,*pTree; //求二叉树镜像,先序遍历的方式 //先判断是否左右孩子都为空,如果不是,则交换,然后递归左右子树 void getMirror(pTree pT) { if(pT == NULL) { return; } if(pT->lChild==NULL && pT->rChild==NULL) { return; } //交换 BNode *temp = pT->lChild; pT->lChild = pT->rChild; pT->rChild = temp; //递归 if(pT->lChild) { getMirror(pT->lChild); } if(pT->rChild) { getMirror(pT->rChild); } } void Create(pTree *ppTree) { int data; cin>>data; if(data != -1) { *ppTree = (BNode*)malloc(sizeof(BNode)); if(*ppTree == NULL) { exit(-1); } (*ppTree)->data = http://www.mamicode.com/data;>
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。