原题
这个题是ZJ大厂的一面手撕算法出现的,网上有两个版本,在LeetCode里是翻转二叉树,在剑指offer里是镜像二叉树。但是解题思路方法一致。
L00226翻转二叉树
翻转一棵二叉树
剑指offer27镜像二叉树
请完成一个函数,输入一个二叉树,该函数输出它的镜像。
输入:
4
/ \
2 7
/ \ / \
1 3 6 9
输出:
4
/ \
7 2
/ \ / \
9 6 3 1
-
输入:root = [4,2,7,1,3,6,9] -
输出:[4,7,2,9,6,3,1] - 来源:力扣(LeetCode)
- 难度:简单
- 链接:https://leetcode-cn.com/problems/invert-binary-tree/
- 来源:剑指 Offer 27. 二叉树的镜像 mirror
- 链接:https://leetcode-cn.com/problems/er-cha-shu-de-jing-xiang-lcof/
解法
其实,关于二叉树的算法,最常见的无非两种,一个是遍历二叉树类型,再一个就是分解子问题的类型!
由此可见,二叉树的遍历是非常重要的,当然遍历也非常简单,记住框架,可以应对一切二叉树的遍历问题。
遍历套路
// 二叉树遍历框架
//先序:根左右; 中序:左根右; 后序:左右根
void traverse(TreeNode root) {
// 前序遍历
//1. 先处理根结点
System.out.print(root.val);
//2. 进行左子树递归遍历
traverse(root.left);
//3. 进行右子树递归遍历
traverse(root

本文介绍了一种经典的二叉树操作——翻转二叉树(又称镜像二叉树)。通过递归方法,实现对二叉树节点的左右子节点进行交换,达到翻转整棵树的目的。文中给出了具体的代码实现及解析。
最低0.47元/天 解锁文章
6万+

被折叠的 条评论
为什么被折叠?



