常考数据结构与算法:二叉树的镜像
题目描述
操作给定的二叉树,将其变换为源二叉树的镜像。
输入描述:
二叉树的镜像定义:源二叉树
8
/ \、
6 10
/ \ / \、
5 7 9 11
镜像二叉树
8
/ \、
10 6
/ \ / \、
11 9 7 5
解题思路
递归的思想,交换两个子节点。
public class GlassMe {public static void main(String[] args) {}/***** @param pRoot TreeNode类* @return TreeNode类*/public TreeNode Mirror (TreeNode pRoot) {if(null == pRoot){return null;}if(pRoot.left == null && pRoot.right == null){return pRoot;}TreeNode temp = pRoot.left;pRoot.left = pRoot.right;pRoot.right = temp;Mirror(pRoot.left);Mirror(pRoot.right);return pRoot;}
}class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int x) { val = x; }
}
常考数据结构与算法:二叉树的镜像相关推荐
- 常考数据结构与算法:二叉树的最大深度
题目描述 求给定二叉树的最大深度, 最大深度是指树的根结点到最远叶子结点的最长路径上结点的数量. class TreeNode {int val;TreeNode left;TreeNode righ ...
- 常考数据结构与算法:二叉树的之字形层序遍历
题目描述 给定一个二叉树,返回该二叉树的之字形层序遍历,(第一层从左向右,下一层从右向左,一直这样交替) 例如: 给定的二叉树是{3,9,20,#,#,15,7}, 该二叉树之字形层序遍历的结果是 [ ...
- 常考数据结构与算法:输出二叉树的右视图
题目描述 请根据二叉树的前序遍历,中序遍历恢复二叉树,并打印出二叉树的右视图 上图树的右视图为:{1,4,3,7} 做此题之前可以先做下面3道题: 1. 常考数据结构与算法:求二叉树的层序遍历 2.常 ...
- 常考数据结构与算法:求二叉树的层序遍历
题目描述 给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历) 例如: 给定的二叉树是{3,9,20,#,#,15,7}, 该二叉树层序遍历的结果是 [ [3], [9,20], ...
- 常考数据结构与算法:判断二叉树是否对称(迭代法,递归法)
给定一棵二叉树,判断琪是否是自身的镜像(即:是否对称) 例如:下面这棵二叉树是对称的 1 / \ 2 2 / \ / \ 3 4 4 3 下面这棵二叉树不对称 ...
- 常考数据结构与算法:在二叉树中找到两个节点的最近公共祖先
题目描述 给定一棵二叉树以及这棵树上的两个节点 o1 和 o2,请找到 o1 和 o2 的最近公共祖先节点. 假设节点的值都大于0. 比如9,10的最近公共祖先节点是2. 思路: 从根节点开始遍历 ...
- 常考数据结构与算法:实现二叉树先序,中序和后序遍历
题目描述 分别按照二叉树先序,中序和后序打印所有的节点. 输入 {1,2,3} 返回值 [[1,2,3],[2,1,3],[2,3,1]] import java.util.ArrayList;cla ...
- 常考数据结构与算法----给定一个二叉树和一个值 sum,请找出所有的根节点到叶子节点的节点值之和等于sum 的路径,
题目描述 给定一个二叉树和一个值sum,请找出所有的根节点到叶子节点的节点值之和等于sum 的路径, 例如: 给出如下的二叉树,sum=22, 返回 [ [5,4,11,2], [5,8,9] ] 示 ...
- 常考数据结构与算法:重建二叉树
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5 ...
最新文章
- python的set结构
- 华为鸿蒙os什么运行内存多大,华为公布鸿蒙OS 2.0硬件安装要求:只要128K内存就能跑...
- 江阳职高计算机应用教改实验,计算机应用课程教改模式
- mac mysql密码错误_解决mac 下mysql安装后root用户登录密码错误问题
- 关于 WSGI、uwsgi和uWSGI的区别及基于 uWSGI和gunicorn 部署python web 简述
- Vertica系列: Vertica DB连接负载均衡
- 新一代的桌面虚拟化技术
- 使用git命令把自己的代码上传到gitlab上
- matlab 神经网络设计与应用,MATLAB 神经网络设计与应用(最新版)
- 优秀的项目经理都会用这60个项目管理工具模板,可直接编辑套用
- ENVI App Store 下载与安装
- 【信息融合】基于BP神经网络和DS 证据理论实现不确定性信息融合问题附matlab代码
- 安利一个免费下载VIP文档神器
- 「数据结构 | 链表」单链表、双向链表节点操作演示动画
- 5个wordpress资源网站推荐
- <口算练习机 方案开发原理图>口算练习机/口算宝/儿童数学宝/儿童计算器 LCD液晶显示驱动IC-VK1621B,提供技术支持
- proe中的一些使用技巧!
- 一个简单的linux命令——rm
- CSDN付费专栏服务要求
- “自如”的看房,“自如”的体验
热门文章
- mysql 触发器介绍
- Procedure execution failed 2013 - Lost connection to MySQL server during query
- Linux下安装jdk(xxx.rpm,非xxx.tar.gz,请注意!)过程
- 《HTTP权威指南》– 5.Web服务器
- 关于VS打包程序无法弹出主界面的问题
- SpringMvc+AngularJS通过CORS实现跨域方案
- Java 8 简明教程
- 插入排序之——希尔排序(c/c++)
- 微服务下的容器部署和管理平台Rancher
- vuex状态管理简单入门