[226] Invert Binary Tree

Posted swetchine

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[226] Invert Binary Tree相关的知识,希望对你有一定的参考价值。

Invert a binary tree.

Example:

Input:

     4
   /     2     7
 / \   / 1   3 6   9

Output:

     4
   /     7     2
 / \   / 9   6 3   1

翻转一棵二叉树。EZ题。
方法1:整体思路就是层次遍历,然后把左右孩子对调。
 1 class Solution 
 2 public:
 3     TreeNode* invertTree(TreeNode* root) 
 4     
 5         queue<TreeNode*> q;
 6         if(root!=nullptr)
 7         
 8             q.push(root);
 9             while(!q.empty())
10             
11                TreeNode* node = q.front();
12                 q.pop();
13                swapChild(node);
14                if(node->left!=nullptr)
15                    q.push(node->left);
16                 if(node->right!=nullptr)
17                     q.push(node->right);
18             
19         
20         return root;
21     
22     void swapChild(TreeNode* node)
23     
24         if(node != nullptr)
25         
26             TreeNode* temp = node->right;
27             node->right = node->left;
28             node->left = temp;
29         
30     
31 ;

方法2:递归求解,简洁的让人觉得可怕,跑的还飞快,推荐食用??

class Solution 
public:
    TreeNode* invertTree(TreeNode* root) 
    
        if(root!=nullptr)
        
            
            auto temp = root->right;
            root->right = invertTree(root->left);
            root->left = invertTree(temp);
        
        return root;
    
;

 

以上是关于[226] Invert Binary Tree的主要内容,如果未能解决你的问题,请参考以下文章

[LeetCode226]Invert Binary Tree

226. Invert Binary Tree

leetcode 226 Invert Binary Tree

226. Invert Binary Tree

226. Invert Binary Tree

#Leetcode# 226. Invert Binary Tree