面试题19:二叉树镜像

递归方法非常简单:

 1 void MirrorRecursively(BinaryTreeNode *pNode)
 2 {
 3     if((pNode == NULL) || (pNode->m_pLeft == NULL && pNode->m_pRight))
 4         return;
 5 
 6     BinaryTreeNode *pTemp = pNode->m_pLeft;
 7     pNode->m_pLeft = pNode->m_pRight;
 8     pNode->m_pRight = pTemp;
 9     
10     if(pNode->m_pLeft)
11         MirrorRecursively(pNode->m_pLeft);  
12 
13     if(pNode->m_pRight)
14         MirrorRecursively(pNode->m_pRight); 
15 }

循环需要利用stack:

 1 void MirrorIteratively(BinaryTreeNode* pRoot)
 2 {
 3     if(pRoot == NULL)
 4         return;
 5 
 6     std::stack<BinaryTreeNode*> stackTreeNode;
 7     stackTreeNode.push(pRoot);
 8 
 9     while(stackTreeNode.size() > 0)
10     {
11         BinaryTreeNode *pNode = stackTreeNode.top();
12         stackTreeNode.pop();
13 
14         BinaryTreeNode *pTemp = pNode->m_pLeft;
15         pNode->m_pLeft = pNode->m_pRight;
16         pNode->m_pRight = pTemp;
17 
18         if(pNode->m_pLeft)
19             stackTreeNode.push(pNode->m_pLeft);
20 
21         if(pNode->m_pRight)
22             stackTreeNode.push(pNode->m_pRight);
23     }
24 }

 

转载于:https://www.cnblogs.com/raichen/p/5646937.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/430410.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

win10共享打印机怎么设置_关于win10网络共享,选择“启用文件和打印机共享”之后,无法保存设置的解决办法...

写个流水账&#xff0c;把我解决这个问题的前因后果记录一下&#xff0c;供遇到相同问题的同学参考之用&#xff0c;希望能有点启发。这个问题的来源&#xff0c;是我想利用客厅的小米盒子&#xff0c;访问同一个路由器局域网之下的pc&#xff0c;直接访问共享文件的方式&#…

MATLAB中BP神经网络用于回归拟合算法实现(另附GRNN代码)

BP神经网络&#xff1a;是1986年由Rumelhart和McClelland为首的科学家提出的概念&#xff0c;是一种按照误差逆向传播算法训练的多层前馈神经网络&#xff0c;是目前应用最广泛的神经网络。神经网络是把生活中的常见情节推广到计算仿真的范畴&#xff0c;这样的启发式算法还有许…

前端性能优化知识,包括css和js

作者&#xff1a;野次链接&#xff1a;http://www.zhihu.com/question/33032042/answer/95948831来源&#xff1a;知乎著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。 1. 减少HTTP请求次数 尽量合并图片、CSS、JS。比如加载一个页面&#xf…

快速理解编程结构_为什么系统编程全都用英文而不用中文?听完专家的解释恍然大悟!...

全球博弈(quanqiuboyi)——不一样的观点&#xff0c;不一样的解读&#xff0c;8000万人订阅的超级微信大号。不关注时事&#xff0c;你将会被这个世界抛弃&#xff0c;点击标题下蓝字“全球博弈”关注&#xff0c;我们将为您提供有价值、有意思的时事解读。人类走进科技发展的道…

用了十年的昵称badboy_怎样用5秒钟看清一对夫妻的真实感情状况?

“只要一分钟&#xff0c;我就能看清一对夫妻感情的状况。”从事情感咨询几十年的行业前辈告诉我&#xff0c;她的诀窍就是——听他们之间如何称呼对方。“大部分情侣在恋爱时都会给对方起一个专属的爱称&#xff0c;比如&#xff1a;小白猪、大宝宝之类的&#xff0c;总之很亲…

MATLAB—经纬度坐标转换为平面坐标

原理示意图&#xff1a; Mercator投影变换示意图 2. 公式: XY平面被当作Mercator投影平面&#xff0c;Y轴和X轴原点分别设为0纬度和0经度。通过如下公式将地理坐标变换到Mercator投影平面。由于标准电子海图/航道图使用WGS84坐标系&#xff0c;本文使用WGS84参数进行变换。投影…

java.util.TimeZone 新加方法 getTimeZone(ZoneId zoneId) 导致的问题

最近接受的项目中用spring配置了一个TimeZone对象&#xff1a; <bean id "timeZone4Job" class"java.util.TimeZone" factory-method"getTimeZone"><constructor-arg value"GMT8:00"/> </bean> 以前是运行在 1.7 中…

io密集型和cpu密集型_和小胖一起理解CPU负载和利用率

作者&#xff1a;小胖前言凌晨一点&#xff0c;正整着炸鸡的小胖&#xff0c;微信一呼“你的服务器CPU持续超载 … “麻溜的连上服务器&#xff0c;先把CPU负载摁下来。仔细一想&#xff0c;最近1分钟平均负载很大&#xff0c;但CPU利用率却≤30%&#xff0c;不经陷入了深思&am…

gui显示文本动态框

软件文本框&#xff0c;显示一些希望被阅读的文本&#xff1b; 包含main函数(kuang)&#xff0c;gui作为子函数&#xff0c;以及必要的txt文件。 直接运行kuang函数即可。时间0.5秒内。 可以顺序显示希望输入的内容&#xff0c;并保存记录&#xff0c;如下 也可以每次只显示新…

生成六位验证码python代码

生成六位验证码python代码 import randomdef Verifi_code():code []for i in range(6):if i random.randint(1,5):code.append(str(random.randint(1,5)))else:temp random.randint(65,90)code.append(chr(temp))a .join(code)return ab Verifi_code()print b转载于:https…

redis5 外部不能连接_【硬见小百科】PCB连接的方法

PCB是电子产品的基本元器件&#xff0c;任何电子产品都需要PCB才能制成。那么&#xff0c;PCB在电子产品之中&#xff0c;必须要与其他器件相互连接在一起&#xff0c;这就是PCB的互连。总的来说&#xff0c;PCB的连接有三个方面&#xff1a;芯片到PCB、PCB内部、PCB与外部器件…

最小费用最大流问题

最小费用最大流问题 解决如下最小费用最大流问题。 以前的资源由于matlab版本问题等已不适用。现在做出修改&#xff0c;适用于matlab2014a以后的版本。 注意&#xff0c;数据格式按代码中的例子的格式&#xff0c;否则需要修改代码。 查了很多资源发现用MATLAB操作的好用的不多…

Web应用中request获取各种获取path或URI,URL的方法

Web应用中有各种获取path或URI&#xff0c;URL的方法&#xff0c;假设网页访问地址: http://localhost:8080/tradeload/TestServlet Web应用context: /tradeload 各路径鉴定如下&#xff1a; request.getContextPath() /tradeload request.getScheme() "://" requ…

windows7无人值守应答文件.rar_数智化赋能人力共享运营,人力管理走向“无人值守”...

关键词&#xff1a;人力共享&#xff0c;HR&#xff0c;数智化&#xff0c;用友&#xff0c;NC Cloud&#xff0c;无人值守人力共享是近几年人力资源从业者持续关注的热点话题。无论是从效率提升、体验改进&#xff0c;还是助力人力资源角色转型&#xff0c;对人力共享能带来的…

android 多线程断点续传下载 三

android 多线程断点续传下载 三转载于:https://www.cnblogs.com/zhujiabin/p/5660093.html

Matlab基本初等函数大全

Matlab基本初等函数大全 方便查阅&#xff0c;适合基础学习者使用。 链接中是完整版 完整版初等函数大全 1、特殊变量与常数 ans 计算结果的变量名 computer 确定运行的计算机 eps 浮点相对精度 Inf 无穷大 I 虚数单位 inputname 输入参数名 NaN 非数 nargin 输入参数个数 narg…

iphone彻底删除照片如何恢复_手机删除的照片如何恢复?OPPO最新照片恢复

手机删除的照片如何恢复&#xff1f;小编给大家带来了OPPO最新照片恢复方法&#xff0c;可谓是专属福利啊&#xff01;手机照片误删&#xff0c;焕发出来的照片很模糊&#xff1f;这有何难&#xff01;手机照片管家APP竟然可以恢复高清图片&#xff0c; 不过现在安卓机只有OPPO…

社区发现SLPA算法

社区&#xff08;community&#xff09;定义&#xff1a;同一社区内的节点与节点之间关系紧密&#xff0c;而社区与社区之间的关系稀疏。 设图GG(V,E),所谓社区发现是指在图G中确定nc(>1)个社区C{C1,C2,...,Cnv},使得各社区的顶点集合构成V的一个覆盖。 若任意两个社区的顶点…

Matlab绘图--包含各种标示符的输入方法

Matlab绘图–包含各种标示符的输入方法。 文档汇总利润Matlab绘图各种标示符的输入方法 适合MATLAB学习者查阅使用 文档包含了整理的所有内容 完整版 标记符号 实线 b蓝色 . 点 s 方块 : 虚线 g绿色 o 圆圈 d 菱形

bucket sort sample sort 并行_MOOSE: 实现大规模并行多物理场仿真(二)

转载自wx公众号&#xff1a;CS guy来源于文章 MOOSE: Enabling massively parallel multiphysics simulation网址&#xff1a;https://www.sciencedirect.com/science/article/pii/S2352711019302973?via%3Dihub2.软件说明2.1 软件架构MOOSE旨在促进创建FEM工具&#xff0c;以…