剑指offer_二叉树---二叉树的镜像

简介: 剑指offer_二叉树---二叉树的镜像

题目描述

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

输入描述

二叉树的镜像定义:
  源二叉树 
            8
           /  \
          6   10
         / \  / \
        5  7 9 11
 镜像二叉树
            8
           /  \
          10   6
         / \  / \
        11 9 7  5

解题思路

1,交换左右子树

2,递归交换左右子树的左右子节点

代码

/**
 * 
 */
package offerTest;
/**
 * <p>
 * Title:Mirror
 * </p>
 * <p>
 * Description:
 * </p>
 * 
 * @author 田茂林
 * @data 2017年8月20日 下午9:07:06
 */
public class Mirror {
    public void Mirrors(TreeNode root) {
        if (root == null || root.left == null && root.right == null){
        //为了保证代码的严谨性,这里最好加上左右子节点不能都为null
            return;
        }
        // 交换根的左右子节点
        TreeNode temp = root.left;
        root.left = root.right;
        root.right = temp;
        // 递归交换根的左右子树
        if (root.left != null)
            Mirrors(root.left);
        if (root.right != null)
            Mirrors(root.right);
    }
    public static void main(String[] args) {
    }
}


相关文章
|
机器学习/深度学习 算法 固态存储
最强DETR+YOLO | 三阶段的端到端目标检测器的DEYOv2正式来啦,性能炸裂!!!
最强DETR+YOLO | 三阶段的端到端目标检测器的DEYOv2正式来啦,性能炸裂!!!
566 0
|
传感器 数据采集 移动开发
基于STM32的智能手环wifi连接手机APP(下)
基于STM32的智能手环wifi连接手机APP(下)
760 0
|
编解码 算法 计算机视觉
使用NumPy进行傅里叶变换:基础概念与实践应用
使用NumPy进行傅里叶变换:基础概念与实践应用
246 1
|
数据格式
如何绘制热图?ggplot2入门笔记
如何绘制热图?ggplot2入门笔记
|
人工智能 安全 网络安全
服务器网络安全防护措施有哪些?
服务器网络安全防护措施有哪些?
Python中strip()、lstrip()和rstrip()方法的区别与用法详解
在Python中,字符串是一种常见的数据类型,而处理字符串时,经常会用到 strip()、lstrip() 和 rstrip() 这几个方法。它们都用于删除字符串开头和/或结尾的指定字符或字符集合,但在具体使用时有一些区别。
|
前端开发
前端学习笔记202306学习笔记第五十一天-代理模式1
前端学习笔记202306学习笔记第五十一天-代理模式1
110 0
太牛了,这是我见过把微服务讲的最全最好的SpringCloud架构进阶
现如今微服务架构十分流行,而采用微服务构建系统也会带来更清晰的业务划分和可扩展性。同时,支持微服务的技术栈也是多种多样的,而Spring Cloud就是这些技术中的翘楚。 作为新一代的服务框架,Spring Cloud提出的口号是开发“面向云环境的应用程序”,它为微服务架构提供了更加全面的技术支持。而且作为Spring的拳头项目,它也能够与Spring Framework、Spring Boot、Spring Data、Spring Batch等其他Spring项目完美融合,这些对于微服务而言是至关重要的。
|
存储 JSON Prometheus
Prometheus+SpringBoot应用监控全过程详解
1. Prometheus是什么 Prometheus是一个具有活跃生态系统的开源系统监控和告警工具包。一言以蔽之,它是一套开源监控解决方案。
|
计算机视觉 C++ Python
OpenCV入门(C++/Python)- 使用OpenCV读取、显示和写入图像(一)
OpenCV入门(C++/Python)- 使用OpenCV读取、显示和写入图像(一)
513 0