题目:操作给定的二叉树,将其变换为源二叉树的镜像。

思路:前序(根左右的顺序)遍历一棵树,在存储的时候将其左右树进行交换,最后按照处理后的树还原,即得到其镜像。

 /**
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null; public TreeNode(int val) {
this.val = val; } }
*/
//前序遍历这棵树的每个结点,如果遍历的节点有子结点,就交换其子结点,当交换完所有非叶子结点的左右子结点之后,就得到了树的镜像
public class Solution {
public void Mirror(TreeNode root) {
if(root == null){
return ;
}
if(root.left == null&&root.right == null){
return;
}
TreeNode pTemp = root.left;
root.left = root.right;
root.right = pTemp;
Mirror(root.left);
Mirror(root.right);
}
}

该算法在Mirror函数中又调用了函数Mirror函数,此属于一种递归,为此查阅了递归和嵌套的相关定义:

https://blog.csdn.net/jlxuqiang/article/details/8809764

总结如下:

函数嵌套 函数递归
嵌套调用是指在函数调用中调用其他函数 函数递归是指在函数调用中再调用该函数自身
函数嵌套是语言特性,即语言提供的一种程序设计的方法 递归调用是逻辑思想,需要依靠函数嵌套来实现
  递归是需要有边界条件、递归前进段和递归返回段。当边界条件不满足的时候,递归前进,边界满足,则递归返回

最新文章

  1. ASP.NET MVC Model绑定(三)
  2. Windows下SVN服务器的搭建步骤
  3. unity 内存中切割图片
  4. ASP.NET一般处理程序访问Session问题
  5. hdu4751Divide Groups(dfs枚举完全图集合或者bfs染色)
  6. cron
  7. android 开源和一些博客总结
  8. Storm中的LocalState 代码解析
  9. 一种C# TCP异步编程中遇到的问题
  10. HDU1411+四面体的体积
  11. web开发工具类
  12. AtomicLong
  13. uiscrollview上的 uipangesturerecognizer冲突
  14. Oracle学习笔记(2)——过程和函数
  15. android插件技术-apkplug于OSGI服务基础-08
  16. ES1:Windows下安装ElasticSearch
  17. 2018年全国多校算法寒假训练营练习比赛(第一场)E 恋与程序员
  18. 用最简单的例子理解适配器模式(Adapter Pattern)
  19. noip | 题目 | noip数据 收集站 | noipdata
  20. html5与html4区别

热门文章

  1. HI3518EV200+AR0130开发板烧录uboot、kernel、rootfs及其参数配置
  2. Django学习笔记之数据库-模型的操作
  3. char* 与 string 互转
  4. php-fpm重启操作
  5. Oracle数据csv导入
  6. elasticsearch -- kibana安装配置
  7. PCI9054 总结(讲解非常清楚)
  8. MariaDB——(三) MariaDB 10.0.15 standard replication主从复制搭建
  9. mysql循环插入千万级数据
  10. JVM垃圾回收器