码迷,mamicode.com
首页 > 其他好文 > 详细

[226] Invert Binary Tree

时间:2019-07-10 00:59:52      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:binary   推荐   code   思路   tput   ret   swap   pch   层次遍历   

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

标签:binary   推荐   code   思路   tput   ret   swap   pch   层次遍历   

原文地址:https://www.cnblogs.com/Swetchine/p/11161400.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!