# Invert Binary Tree

## Description

Invert a binary tree.

**Example:**

Input:

```
     4
   /   \
  2     7
 / \   / \
1   3 6   9
```

Output:

```
     4
   /   \
  7     2
 / \   / \
9   6 3   1
```

## Solution

```cpp
class Solution {
public:
    TreeNode *invertTree(TreeNode *root) {
        stack<TreeNode *> st;
        st.push(root);
        while (!st.empty()) {
            auto node = st.top();
            st.pop();
            if (node) {
                swap(node->left, node->right);
                st.push(node->left);
                st.push(node->right);
            }
        }
        return root;
    }
};
```
