https://leetcode-cn.com/problems/invert-binary-tree/
    翻转一棵二叉树。

    示例:

    输入:

    1. 4<br /> / \<br /> 2 7<br /> / \ / \<br />1 3 6 9<br />输出:
    2. 4<br /> / \<br /> 7 2<br /> / \ / \<br />9 6 3 1
    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode() {}
     *     TreeNode(int val) { this.val = val; }
     *     TreeNode(int val, TreeNode left, TreeNode right) {
     *         this.val = val;
     *         this.left = left;
     *         this.right = right;
     *     }
     * }
     */
    class Solution {
        public TreeNode invertTree(TreeNode root) {
               if(root == null){
                   return null;
               }
               TreeNode node = null;
               node = root.left;
               root.left = root.right;
               root.right = node;
               invertTree(root.left);
               invertTree(root.right);
               return root;
        }
    }
    

    拿到题目一开始都没看懂。。。。
    所谓的反转二叉树,要求其实很简单:
    对一颗二叉树的每一个节点,交换它的左右子节点。
    思路很简单,对于一个节点root来说,它的左右节点的左右节点到底是怎么变换的和root本身没有半毛钱关系。root只要知道,它身上有两个口袋,左边的口袋放的是A,右边的口袋放的是B,反转以后它左边的口袋里变成了B,右边口袋里变成了A,这就够了。至于A和B怎么变,那是它们自己的事。