226.翻转二叉树

【LetMeFly】226.翻转二叉树

力扣题目链接:https://leetcode.cn/problems/invert-binary-tree/

给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。

 

示例 1:

输入:root = [4,2,7,1,3,6,9]
输出:[4,7,2,9,6,3,1]

示例 2:

输入:root = [2,1,3]
输出:[2,3,1]

示例 3:

输入:root = []
输出:[]

 

提示:

  • 树中节点数目范围在 [0, 100]
  • -100 <= Node.val <= 100

方法一:广搜

使用一个队列

首先将根节点入队,每次出队时,先记录下原始的左右节点,之后交换当前节点的左右节点。

如果左或右节点不空,就入队。

直到队列为空。

  • 时间复杂度$O(n)$,其中$n$是节点个数
  • 空间复杂度$O(n)$,空间复杂度来自队列

AC代码

C++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Solution {
public:
TreeNode* invertTree(TreeNode* root) {
if (!root)
return root;
queue<TreeNode*> q;
q.push(root);
while (q.size()) {
TreeNode* thisNode = q.front();
q.pop();
TreeNode* left = thisNode->left;
TreeNode* right = thisNode->right;
thisNode->left = right, thisNode->right = left;
if (left)
q.push(left);
if (right)
q.push(right);
}
return root;
}
};

同步发文于CSDN,原创不易,转载请附上原文链接哦~
Tisfy:[https://letmefly.blog.csdn.net/article/details/](https://letmefly.blog.csdn.net/article/details/)


226.翻转二叉树
https://blog.letmefly.xyz/2022/09/06/LeetCode 0226.翻转二叉树/
作者
Tisfy
发布于
2022年9月6日
许可协议