给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。

    示例 1:

    226翻转二叉树 - 图1

    1. 输入:root = [4,2,7,1,3,6,9]
    2. 输出:[4,7,2,9,6,3,1]

    示例 2:

    226翻转二叉树 - 图2

    输入:root = [2,1,3]
    输出:[2,3,1]
    

    示例 3:

    输入:root = []
    输出:[]
    

    提示:

    • 树中节点数目范围在 [0, 100]
    • -100 <= Node.val <= 100
    //前序
    class Solution {
    public:
        TreeNode* invertTree(TreeNode* root) {
            if (root == NULL) return root;
            swap(root->left, root->right);  // 中
            invertTree(root->left);         // 左
            invertTree(root->right);        // 右
            return root;
        }
    };
    
    //层序
    class Solution {
    public:
        TreeNode* invertTree(TreeNode* root) {
            queue<TreeNode*>q;
            if(root!=nullptr) q.push(root);
            while (!q.empty()) {
                int len=q.size();
                for (int i = 0; i < len; i++) {
                    TreeNode* node=q.front();
                    q.pop();
                    TreeNode* tem=node->left;
                    node->left=node->right;
                    node->right=tem;
                    if(node->left) q.push(node->left);
                    if(node->right) q.push(node->right);
                }
            }
            return root;
        }
    };