题目:输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。用递归和循环两种方法完成树的镜像转换。
例如输入:
     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题之十三:求二叉查找树的镜像相关推荐

  1. 程序员面试100题之四:求1+2+...+n

    题目:求1+2+-+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字以及条件判断语句(A?B:C). 分析:这道题没有多少实际意义,因为在软件开发中不会有这么 ...

  2. 程序员面试100题之十二:求数组中最长递增子序列

    写一个时间复杂度尽可能低的程序,求一个一维数组(N个元素)中最长递增子序列的长度. 例如:在序列1,-1,2,-3,4,-5,6,-7中,其最长递增子序列为1,2,4,6. 分析与解法 根据题目要求, ...

  3. 程序员面试100题之九:求子数组的最大和

    题目:输入一个整形数组,数组里有正数也有负数.数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和.求所有子数组的和的最大值.要求时间复杂度为O(n). 例如输入的数组为1, -2, 3, ...

  4. 程序员面试100题之六:最长公共子序列

           题目:如果字符串一的所有字符按其在字符串中的顺序出现在另外一个字符串二中,则字符串一称之为字符串二的子串.注意,并不要求子串(字符串一)的字符必须连续出现在字符串二中.请编写一个函数,输 ...

  5. 程序员面试100题之六 最长公共子序列

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴!      ...

  6. 程序员面试100题之十五:数组分割

    一.题目概述:有一个没有排序,元素个数为2N的正整数数组.要求把它分割为元素个数为N的两个数组,并使两个子数组的和最接近. 假设数组A[1..2N]所有元素的和是SUM.模仿动态规划解0-1背包问题的 ...

  7. 程序员面试100题之十:快速寻找满足条件的两个数

    能否快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值,为了简化起见,我们假设这个数组中肯定存在至少一组符合要求的解. 假如有如下的两个数组,如图所示: 5,6,1,4,7,9,8 给定S ...

  8. 程序员面试100题之八:不要被阶乘吓倒(二进制表示中最低位1的位置 )

    阶乘(Factorial)是个很有意思的函数,但是不少人都比较怕它,我们来看看两个与阶乘相关的问题: 1. 给定一个整数N,那么N的阶乘N!末尾有多少个0呢?例如:N=10,N!=3 628 800, ...

  9. 程序员面试100题之七:最长公共子字符串

    子字符串的定义和子序列的定义类似,但要求是连续分布在其他字符串中.比如输入两个字符串BDCABA和ABCBDAB的最长公共字符串有BD和AB,它们的长度都是2. 最长公共子字符串共有两种解决方法,下面 ...

最新文章

  1. python Celery 分布式任务队列快速入门
  2. 线上分享 | 浅谈中台对产品经理的价值
  3. iPhone 13发售日期偷跑:9月17日全系开售、共4款
  4. pyspark.zip/pyspark/worker.py:53: UnicodeWarning: Unicode equal comparison failed to convert both ar
  5. 打印机显示发送任务到服务器失败,G-FAX单机版操作指引-AOFAX—传真服务器.DOC
  6. 互联网人,从来不说人话!
  7. sql server安装
  8. 常见前端开发的题目,可能对你有用
  9. linux源代码分析和阅读工具比较
  10. wps2000集成办公系统 v3.02.99专业版(附序列号)|wps2000老版本
  11. ipadmini1iOS9.3.5降级8.4.1教程
  12. 软考高项范文——论信息系统项目的成本管理
  13. 实战Nagios网络监控(2)—— Nagios+Nrpe监控其他主机
  14. requestLayout() improperly called by android.widget.GridView{43cefbd VFED.VC.. .F...... 0,0-2190,319
  15. 动物电子耳标阅读器|识读器|读卡器L8600系列Modbus RTU通讯协议与二次开发说明
  16. 打算自学一些编程,想兼职程序员打零工,想问问现在哪个程序员兼职平台单子简单,不考察接单人学历?
  17. Internet Download Manager浏览器插件安装方法
  18. 网络变压器供不应求 新型网变救市刻不容缓
  19. 在HTML中 表示内嵌CSS样式的标记,html怎么加css样式
  20. WPS2019教育版和EndnoteX9关联

热门文章

  1. 云湖共生,下一代数据湖来了?
  2. 一文了解 Kubernetes
  3. 组合模式_[设计模式]10.组合模式
  4. 测试开发岗面试问题-工具类
  5. 美团在Redis上踩过的一些坑-5.redis cluster遇到的一些问题
  6. 从产品与程序员打架事件,谈谈需求管理的沟通能力
  7. linux系统基本操作命令
  8. mysql安装笔记02
  9. mybatis必知必会一
  10. 一文弄懂神经网络中的反向传播法——BackPropagation【转】