【33】二叉树的镜像
2016-05-13 20:04
423 查看
画图是遇到算法问题的一种解题思路。
他可以让抽象问题具体化。有不少数据结构比如二叉树和二维数组以及链表都可以用这种思路来做。
题目:
完成一个函数,输入一颗二叉树,输出它的镜像二叉树类
class BinaryTreeNode{ int mValue; BinaryTreeNode nLeft; BinaryTreeNode mRight; }
思路:
前序遍历,如果不是空,只需要递归的交换子树就可以了如图:
代码:
void mirrorTree(BinaryTreeNode pNode){ if(pNode == null || (pNode.mLeft == null && pNode.mRight == null)){ return; } BinaryTreeNode tmp = pNode.mLeft; pNode.mLeft = pNode.mRight; pNode.mRight = tmp; if(pNode.mLeft != null){ mirrorTree(pNode.mLeft); } if(pNode.mRight != null){ mirrorTree(pNode.mRight); } }
安利一个面试题汇总的微信订阅号。每天推送经典面试题和面试心得技巧,都是干货!
微信订阅号名称:IT面试题汇总
微信订阅号二维码如下:
相关文章推荐
- 【33】二叉树的镜像
- 活動的生命週期-11
- Beautiful Soup 4库--python2.x(学习日记)
- 团队项目第一天
- hdu - 2083 - 简易版之最短距离
- HDU 4289 Control 最小割最大流 拆点
- 屏幕截图程序(WTL)
- java并发编程之3——Java锁的分析
- leetcode Odd Even Linked List
- MySQL多表连接查询
- Android内核开发:图解Android系统的启动过程
- 线程简介
- spark笔记-MLlib之kmeans
- Android BitmapShader实现圆形和圆角图片
- 在springmvc中使用hibernate-validate
- Android内核开发:系统分区与镜像文件的烧写
- 基于线上环境的jvm堆栈分析,jmap+MAT
- 视觉SLAM中的数学基础 第一篇 3D空间的位置表示
- 周五脑补下几天的项目记录
- @Autowired注入原则