剑指Offer:面试题19——二叉树的镜像(java实现)
2016-07-07 08:54
555 查看
问题描述:
操作给定的二叉树,将其变换为源二叉树的镜像。 二叉树结点定义为:
例如:
思路:
从根结点出发,递归的,首先交换左右子树,然后将变化后的左右子树变换为其镜像。
代码:
操作给定的二叉树,将其变换为源二叉树的镜像。 二叉树结点定义为:
public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } }
例如:
8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5
思路:
从根结点出发,递归的,首先交换左右子树,然后将变化后的左右子树变换为其镜像。
代码:
public void Mirror(TreeNode root) { if(root == null){ return; } if(root.left == null && root.right == null){ return; } TreeNode tmp = root.left; root.left = root.right; root.right = tmp; if(root.left != null){//这里加入判空条件可以及时终止递归,会少进行一次递归,减少栈存储的压力 Mirror(root.left); } if(root.right != null){ Mirror(root.right); } }
相关文章推荐
- 一个关于if else容易迷惑的问题
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序