反转二叉树
Invert Binary Tree ⭐️
LeetCode每日一题 2020.09.16
翻转一棵二叉树。
Example:
1 | Input: |
Trivia: 这道题来源于(Homebrew)作者原问题启发:
Google: 90% of our engineers use the software you wrote (Homebrew), but you can’t invert a binary tree on a whiteboard so fuck off.
题目大意
题目简单明了, 如上图所示翻转整个二叉树。
解题思路
这题是一个很简答的二叉树问题。显然, 我们从二叉树根节点顶部开始, 对树进行递归遍历, 先交换子节点, 再依次翻转叶子节点(从末端叶子节点先开始翻转也可以)。
代码
递归法
1 | /** |
复杂度分析
- 时间复杂度: , 其中 n 是二叉树中的节点个数。
- 空间复杂度: , 当前节点在二叉树中的高度。在平均情况下,二叉树的高度与节点个数为对数关系,即 。而在最坏情况下,树形成链状,空间复杂度为 。