title: size of a binary tree using recursion
body: <p>Can anybody explain exactly how this recursion works?
  We calculate the size of the left sub tree and the right sub tree, but what about the nodes that are on the right side (i.e, right child) of the left sub tree? Also, why do we add the 1 everytime we call it?</p>
  
  <pre><code>int size(struct node* node) // We pass root 
  {
     if (node==NULL) 
        return 0;
     else    
        return(size(node-&gt;left) + 1 + size(node-&gt;right));  
  }
  </code></pre>