二叉树的镜像:

public class _Q19 {public void MirrorRecursively(BinaryTreeNode tree){if(tree == null) return;if(tree.leftChild == null && tree.rightChild == null) return;BinaryTreeNode tempNode = tree.leftChild;tree.leftChild = tree.rightChild;tree.rightChild = tempNode;MirrorRecursively(tree.rightChild);MirrorRecursively(tree.leftChild);}}

测试代码:

public class _Q19Test extends TestCase {_Q19 mirrorTree = new _Q19();// 测试用的树是第18题中构造的树,挺好用的 哈哈哈public void test(){BinaryTreeNode node0 = new BinaryTreeNode();BinaryTreeNode node1 = new BinaryTreeNode();BinaryTreeNode node2 = new BinaryTreeNode();BinaryTreeNode node3 = new BinaryTreeNode();BinaryTreeNode node4 = new BinaryTreeNode();BinaryTreeNode node5 = new BinaryTreeNode();BinaryTreeNode node6 = new BinaryTreeNode();BinaryTreeNode node7 = new BinaryTreeNode();BinaryTreeNode node8 = new BinaryTreeNode();BinaryTreeNode node9 = new BinaryTreeNode();node0.value = 8;node1.value = 8;node2.value = 7;node3.value = 9;node4.value = 2;node5.value = 4;node6.value = 7;node7.value = 8;node8.value = 9;node9.value = 2; // 改动以修改成一棵不在tree1中的子树node0.leftChild = node1;node0.rightChild = node2;node1.leftChild = node3;node1.rightChild = node4;node4.leftChild = node5;node4.rightChild = node6;node2.leftChild = null; node2.rightChild = null;node3.leftChild = null; node3.rightChild = null;node5.leftChild = null; node5.rightChild = null;node6.leftChild = null; node6.rightChild = null;node7.leftChild = node8;node7.rightChild = node9;node8.leftChild = null; node8.rightChild = null;node9.leftChild = null; node9.rightChild = null;System.out.println("before:");CommonUtils.PrintTreePreOrder(node0);System.out.println();CommonUtils.PrintTreePreOrder(node7);System.out.println();mirrorTree.MirrorRecursively(node0);mirrorTree.MirrorRecursively(node7);System.out.println("after:");CommonUtils.PrintTreePreOrder(node0);System.out.println();CommonUtils.PrintTreePreOrder(node7);}}

【剑指offer-Java版】19二叉树的镜像相关推荐

  1. 剑指offer面试题[19]-二叉树的镜像

    题目描述 操作给定的二叉树,将其变换为源二叉树的镜像. 输入描述: 二叉树的镜像定义:源二叉树 8/ \6 10/ \ / \5 7 9 11镜像二叉树8/ \10 6/ \ / \11 9 7 5 ...

  2. 剑指offer java版 test3—从尾到头打印链表

    标题:剑指offer java版 test3-从尾到头打印链表 题目:输入一个链表,按链表从尾到头的顺序返回一个ArrayList. 解答:知识不够全面,用ArrayList做的 但是看到大佬们还可以 ...

  3. 剑指offer:对称的二叉树(镜像,递归,非递归DFS栈+BFS队列)

    1. 题目描述 /**请实现一个函数,用来判断一颗二叉树是不是对称的.注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的 */ 2. 递归 思路: /**1.只要pRoot.left和pRo ...

  4. 剑指offer(C++)-JZ27:二叉树的镜像(数据结构-树)

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 操作给定的二叉树,将其变换为源二叉树的镜像. 数据范围:二叉树的节点数 0≤n≤10 ...

  5. 剑指offer十八之二叉树的镜像

    一.题目 操作给定的二叉树,将其变换为源二叉树的镜像.二叉树的镜像定义: 源二叉树 : 8/ \6 10/ \ / \5 7 9 11镜像二叉树:8/ \10 6/ \ / \11 9 7 5 二.思 ...

  6. 剑指offer java版 test42—找出和为S的两个数,左右夹逼法(双指针法)

    前言:受上一题的启发,这题自己也编出来了.在碰到这种有序数列的时候,经常会用到双指针法,一个指左边,一个指右边,然后依照规则移动,增加或缩小范围.很实用. 题目: 输入一个递增排序的数组和一个数字S, ...

  7. 剑指offer java版(三)

    二叉搜索树的后序遍历 问题描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. 解题思路 对于后序遍历来说, ...

  8. 剑指offer没有java版吗_剑指Offer(Java版) 持续更新中

    面试题2 单例(之前有整理,略) 面试题3 二维数组中的查找 public boolean find(int target, int [][] array) { boolean found = fal ...

  9. 剑指offer java版(一)

    二维数组中的查找 问题描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数 ...

  10. 剑指offer面试题27. 二叉树的镜像(递归)

    题目描述 请完成一个函数,输入一个二叉树,该函数输出它的镜像. 思路 详见链接 代码 class Solution:def mirrorTree(self, root:TreeNode)->Tr ...

最新文章

  1. python 字符串形式的列表 转 列表
  2. 用C++的类重载高精度加法,乘法和等于符号
  3. uglifyjs报错 webpack_基于vue2.X的webpack基本配置,教你手动撸一个webpack4的配置
  4. [转]模拟电路设计经典教材推荐
  5. apache php日志配置,HTML_初学:apache与php基本配置,1、APACHE的日志主要分为“ - phpStudy...
  6. Analyzer报表结果行
  7. 实用常识 | HTML嵌入处理MARKDOWN合并单元格
  8. Python案例:汉诺塔游戏
  9. OpenCV计算机视觉实战(Python版)_003阈值与平滑处理
  10. 前端-requests-flask对应关系 HTTPDigestAuth
  11. SQL SERVER中的二种获得自增长ID的方法
  12. access里面的表达式运用_Access表达式
  13. 关于FileOpen2插件安装apk时闪退的解决办法
  14. 使用html5与js实现音乐播放器
  15. 获取比Administrator还高的权限——SYSTEM权限
  16. 桌面Ubuntu卡死解决方案
  17. 西瓜视频运营策略分析:借助平台优势实现内容升级
  18. net stop mysql 发生系统错误5
  19. 活跃用户的测算方法与用户黏性指数的提出
  20. Google Java编程风格指南(献给那些没有良好编码习惯的程序员们)

热门文章

  1. python3连接oracle教程,Pycharm中Python3连接Oracle
  2. docker-3-常用命令(上)
  3. 油猴脚本第一家,网页网盘链接实时判断+资源搜索网站导航,资源重度患者的福利...
  4. 用无人机打点作画,密集恐惧症患者慎入!
  5. linux下的module_param()解释【转】
  6. Java多线程-synchronized关键字
  7. andriod之log打印
  8. 开源-一步步实现cnblogs博客采集工具-对项目需求的分析
  9. composer的基本运用
  10. oracle11g之管理oracle数据库笔记(理论基础知识)