程序员面试100题之十三:求二叉查找树的镜像
2011-08-27 16:02
225 查看
题目:输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。用递归和循环两种方法完成树的镜像转换。
例如输入:
8
/ \
6 10
/\ /\
5 7 9 11
输出:
8
/ \
10 6
/\ /\
11 9 7 5
这题相对很简单,没什么说的,直接代码了。。。
例如输入:
8
/ \
6 10
/\ /\
5 7 9 11
输出:
8
/ \
10 6
/\ /\
11 9 7 5
这题相对很简单,没什么说的,直接代码了。。。
void BSTree::mirrorRec(BSTreeNode* node) { if (!node) return; mirrorRec(node->lc); mirrorRec(node->rc); BSTreeNode* temp = node->lc; //交换左、右子树 node->lc = node->rc; node->rc = temp; } void BSTree::mirrorRec() // 递归 { mirrorRec(root); } void BSTree::mirror() // 非递归 { stack<BSTreeNode*> st; st.push(root); //将二叉树的根结点压栈 while (!st.empty()) { BSTreeNode *t = st.top(); BSTreeNode *temp; st.pop(); temp = t->lc; //交换左、右子树 t->lc = t->rc; t->rc = temp; if (t->lc) st.push(t->lc); if (t->rc) st.push(t->rc); } }
相关文章推荐
- 程序员面试100题之十三:求二叉查找树的镜像
- 程序员面试100题之十三:求二叉查找树的镜像
- python实现二叉树的镜像、公共最低祖先、二叉查找树的搜索
- C语言 二叉查找树镜像
- 15. 二叉查找树的镜像
- 二叉查找树的镜像
- [程序猿面试题精选100题]11.求二叉查找树的镜像
- [程序员面试题精选100题]11.求二叉查找树的镜像
- 二叉查找树镜像翻转
- 将二叉查找树转换为其镜像
- 二叉查找树的分层遍历输出和镜像
- SQL Server 2008无监听服务器的镜像安装(工作组)
- 遍历二叉查找树
- 二叉查找树的简单模板实现
- 树莓派更新镜像地址,解决更新慢如蜗牛的问题。。
- eclipse Neon.3 Release (4.6.3)中maven项目使用阿里云镜像
- win7下硬盘安装Ubuntu双系统遇到找不到iso安装镜像的问题+修改win7开机启动项的方法
- android sdk 国内镜像
- 10.EVE-NG镜像来啦!打造国内最大的EVE交流圈