LeetCode 226. Invert Binary Tree

来源:互联网 发布:floyd算法 路径 编辑:程序博客网 时间:2024/06/08 08:41

Invert a binary tree.

     4   /   \  2     7 / \   / \1   3 6   9
to
     4   /   \  7     2 / \   / \9   6 3   1
1.BFS

class Solution {public:    TreeNode* invertTree(TreeNode* root) {        if(root == NULL) return NULL;        queue<TreeNode*> q;        q.push(root);        while(!q.empty()){            TreeNode* node = q.front();            q.pop();            TreeNode* node2 = node->left;            node->left = node->right;            node->right = node2;            if(node->left) q.push(node->left);            if(node->right) q.push(node->right);        }        return root;    }};
2.DFS

class Solution {public:    TreeNode* invertTree(TreeNode* root) {        if(root == NULL) return root;        TreeNode* node = root->left;        root->left = root->right;        root->right = node;        if(root->left) invertTree(root->left);        if(root->right) invertTree(root->right);        return root;    }};



0 0