Invert Binary Tree

来源:互联网 发布:360浏览器比价软件 编辑:程序博客网 时间:2024/04/29 08:13

Invert a binary tree.

     4   /   \  2     7 / \   / \1   3 6   9
to
     4   /   \  7     2 / \   / \9   6 3   1
Trivia:
This problem was inspired by this original tweet by Max Howell:
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.

Subscribe to see which companies asked this question

/** * Definition for a binary tree node. * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    TreeNode* invertTree(TreeNode* root) {        if(root==NULL) return NULL;                    TreeNode temp  = root->left;          root->left = root->right;          root->right = temp;                    invertTree(root->left);          invertTree(root->right);                    return root;         }};
class Solution {public:    TreeNode* invertTree(TreeNode* root) {        if (!root) return NULL;        queue<TreeNode*> q;        q.push(root);        while (!q.empty()) {            TreeNode *node = q.front(); q.pop();            TreeNode *tmp = node->left;            node->left = node->right;            node->right = tmp;            if (node->left) q.push(node->left);            if (node->right) q.push(node->right);        }        return root;    }};



0 0
原创粉丝点击