博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[剑指offer] 二叉树的镜像
阅读量:7067 次
发布时间:2019-06-28

本文共 930 字,大约阅读时间需要 3 分钟。

题目描述

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

输入描述:

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

解题思路

通过对以上两棵树的观察,我们可以总结出这两棵树的根节点相同,但它们的左、右两个子节点交换了位置。所以我们可以得出求一棵树的镜像的过程:先前序遍历这棵树的每个节点,如果遍历到的节点有子节点,就交换它的两个子节点。当交换完所有非叶节点的左、右子节点之后,就得到了树的镜像。

参考代码

/**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 temp = root.left;        root.left = root.right;        root.right = temp;        //递归交换叶子节点        if(root.left != null)            Mirror(root.left);        if(root.right != null)            Mirror(root.right);    }}

转载地址:http://gfall.baihongyu.com/

你可能感兴趣的文章
衡量企业应用数据库性能的6大指标
查看>>
ng的缓存模板的用法
查看>>
Vimium 快捷键指南
查看>>
Javascript MV*模式
查看>>
【JavaScript】【函数】蛛丝马迹
查看>>
Windows Media Center SDK 在 GitHub 上发布
查看>>
原创C# Winform+DevExpress皮肤框架
查看>>
主讲人—周梦康(楚松)系列技术直播
查看>>
PostgreSQL Heap Only Tuple - HOT (降低UPDATE引入的索引写IO放大) ...
查看>>
SpringBoot(十六)_springboot整合JasperReport6.6.0
查看>>
牵扯256万人!国内一AI公司人脸识别数据泄露
查看>>
Spring cloud配置客户端(二)
查看>>
数字对讲系统开发札记(前端linux c 后端 c#)
查看>>
C++构造函数的default和delete
查看>>
中美5G合作又遇阻,英特尔和紫光展锐合作终止
查看>>
python基础教程第2版 20 项目1:即时标记
查看>>
linux禁止root用户直接登录sshd并修改默认端口
查看>>
2019年,AI安防行业的10大未知丨中国人工智能安防峰会
查看>>
Guidelines for Function Compute Development - Use Fun Local for Local Running and Debugging
查看>>
pycharm Startup Error: Application cannot start in headless mode
查看>>