1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
int get_node_count(TreeNode *node)
{
    int count = 0;
 
    if (node != NULL)
        count = 1 + get_node_count(node->left) +
        get_node_count(node->right);
 
    return count;
}
 
int get_leaf_count(TreeNode *node)
{
    int count = 0;
 
    if (node != NULL) {
        if (node->left == NULL && node->right == NULL)
            return 1;
        else
            count = get_leaf_count(node->left) +
            get_leaf_count(node->right);
    }
    return count;
}
 
int get_height(TreeNode *node)
{
    int height = 0;
 
    if (node != NULL)
        height = 1 + max(get_height(node->left),
            get_height(node->right));
 
    return height;
}
cs