internal node count in a binary tree

#include <stdio.h>

typedef struct Node
{
int data;
struct Node *left, *right;

}Node;

typedef Node * Tree;

inline int isLeaf(Node *n)
{
return (n == NULL) || (n->left == NULL && n->right == NULL);
}

int internalNodeCount(Tree t)
{
if(isLeaf(t))
return 0;

return 1 + internalNodeCount(t->left) + internalNodeCount(t->right);

}
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s