LeetCode 0226. 翻转二叉树

Posted Tisfy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 0226. 翻转二叉树相关的知识,希望对你有一定的参考价值。

【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 ) O(n) O(n),其中 n n n是节点个数
  • 空间复杂度 O ( n ) O(n) O(n),空间复杂度来自队列

AC代码

C++

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/126723046

以上是关于LeetCode 0226. 翻转二叉树的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode刷题100天—226. 翻转二叉树(二叉树)—day03

Leetcode刷题100天—226. 翻转二叉树(二叉树)—day03

leetcode226 翻转二叉树(Easy)

LeetCode Java刷题笔记—226. 翻转二叉树

LeetCode226 翻转二叉树

力扣(LeetCode)226. 翻转二叉树