0226. 翻转二叉树
题目地址(226. 翻转二叉树)
https://leetcode-cn.com/problems/invert-binary-tree/
题目描述
翻转一棵二叉树。
示例:
输入:
4
/ \
2 7
/ \ / \
1 3 6 9
输出:
4
/ \
7 2
/ \ / \
9 6 3 1
备注:
这个问题是受到 Max Howell 的 原问题 启发的 :
谷歌:我们90%的工程师使用您编写的软件(Homebrew),但是您却无法在面试时在白板上写出翻转二叉树这道题,这太糟糕了。
前置知识
公司
阿里
腾讯
百度
字节
思路
这是一个经典的面试问题,难度不大,大家可以用它练习一下递归和迭代。
算法:
遍历树(随便怎么遍历),然后将左右子树交换位置。
关键点解析
递归简化操作
如果树很高,建议使用栈来代替递归
这道题目对顺序没要求的,因此队列数组操作都是一样的,无任何区别
代码
语言支持:JS,Python,C++
Javascript Code:
Python Code:
C++ Code:
复杂度分析
时间复杂度:$O(N)$
空间复杂度:$O(N)$
更多题解可以访问我的 LeetCode 题解仓库:https://github.com/azl397985856/leetcode 。 目前已经 37K star 啦。
关注公众号力扣加加,努力用清晰直白的语言还原解题思路,并且有大量图解,手把手教你识别套路,高效刷题。

最后更新于
这有帮助吗?