给出一个完全二叉树,求出该树的节点个数。
    说明:
    完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2 个节点。
    示例:

    1. 输入:
    2. 1
    3. / \
    4. 2 3
    5. / \ /
    6. 4 5 6
    7. 输出: 6
    /**
     * 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:
        int countNodes(TreeNode* root) {
            if(root == NULL) return 0;
            if(root->left == NULL && root->right == NULL){
                return 1;
            }
            if(root->left == NULL || root->right == NULL){
                return 2;
            }
            return countNodes(root->left) + countNodes(root->right) + 1;
    
        }
    };