【剑指offer-Java版】19二叉树的镜像
二叉树的镜像:
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二叉树的镜像相关推荐
- 剑指offer面试题[19]-二叉树的镜像
题目描述 操作给定的二叉树,将其变换为源二叉树的镜像. 输入描述: 二叉树的镜像定义:源二叉树 8/ \6 10/ \ / \5 7 9 11镜像二叉树8/ \10 6/ \ / \11 9 7 5 ...
- 剑指offer java版 test3—从尾到头打印链表
标题:剑指offer java版 test3-从尾到头打印链表 题目:输入一个链表,按链表从尾到头的顺序返回一个ArrayList. 解答:知识不够全面,用ArrayList做的 但是看到大佬们还可以 ...
- 剑指offer:对称的二叉树(镜像,递归,非递归DFS栈+BFS队列)
1. 题目描述 /**请实现一个函数,用来判断一颗二叉树是不是对称的.注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的 */ 2. 递归 思路: /**1.只要pRoot.left和pRo ...
- 剑指offer(C++)-JZ27:二叉树的镜像(数据结构-树)
作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 操作给定的二叉树,将其变换为源二叉树的镜像. 数据范围:二叉树的节点数 0≤n≤10 ...
- 剑指offer十八之二叉树的镜像
一.题目 操作给定的二叉树,将其变换为源二叉树的镜像.二叉树的镜像定义: 源二叉树 : 8/ \6 10/ \ / \5 7 9 11镜像二叉树:8/ \10 6/ \ / \11 9 7 5 二.思 ...
- 剑指offer java版 test42—找出和为S的两个数,左右夹逼法(双指针法)
前言:受上一题的启发,这题自己也编出来了.在碰到这种有序数列的时候,经常会用到双指针法,一个指左边,一个指右边,然后依照规则移动,增加或缩小范围.很实用. 题目: 输入一个递增排序的数组和一个数字S, ...
- 剑指offer java版(三)
二叉搜索树的后序遍历 问题描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. 解题思路 对于后序遍历来说, ...
- 剑指offer没有java版吗_剑指Offer(Java版) 持续更新中
面试题2 单例(之前有整理,略) 面试题3 二维数组中的查找 public boolean find(int target, int [][] array) { boolean found = fal ...
- 剑指offer java版(一)
二维数组中的查找 问题描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数 ...
- 剑指offer面试题27. 二叉树的镜像(递归)
题目描述 请完成一个函数,输入一个二叉树,该函数输出它的镜像. 思路 详见链接 代码 class Solution:def mirrorTree(self, root:TreeNode)->Tr ...
最新文章
- python 字符串形式的列表 转 列表
- 用C++的类重载高精度加法,乘法和等于符号
- uglifyjs报错 webpack_基于vue2.X的webpack基本配置,教你手动撸一个webpack4的配置
- [转]模拟电路设计经典教材推荐
- apache php日志配置,HTML_初学:apache与php基本配置,1、APACHE的日志主要分为“ - phpStudy...
- Analyzer报表结果行
- 实用常识 | HTML嵌入处理MARKDOWN合并单元格
- Python案例:汉诺塔游戏
- OpenCV计算机视觉实战(Python版)_003阈值与平滑处理
- 前端-requests-flask对应关系 HTTPDigestAuth
- SQL SERVER中的二种获得自增长ID的方法
- access里面的表达式运用_Access表达式
- 关于FileOpen2插件安装apk时闪退的解决办法
- 使用html5与js实现音乐播放器
- 获取比Administrator还高的权限——SYSTEM权限
- 桌面Ubuntu卡死解决方案
- 西瓜视频运营策略分析:借助平台优势实现内容升级
- net stop mysql 发生系统错误5
- 活跃用户的测算方法与用户黏性指数的提出
- Google Java编程风格指南(献给那些没有良好编码习惯的程序员们)
热门文章
- python3连接oracle教程,Pycharm中Python3连接Oracle
- docker-3-常用命令(上)
- 油猴脚本第一家,网页网盘链接实时判断+资源搜索网站导航,资源重度患者的福利...
- 用无人机打点作画,密集恐惧症患者慎入!
- linux下的module_param()解释【转】
- Java多线程-synchronized关键字
- andriod之log打印
- 开源-一步步实现cnblogs博客采集工具-对项目需求的分析
- composer的基本运用
- oracle11g之管理oracle数据库笔记(理论基础知识)