//program is implemented by shadab khan
#include <stdio.h>#include <stdlib.h>/* A binary tree node has data, pointer to left childand a pointer to right child */struct node{
int data;struct node* left;struct node* right;};
/* Function to get the count of leaf nodes in a binary tree*/unsigned
int getLeafCount(struct node* node){
if(node == NULL)return 0;if(node->left == NULL && node->right==NULL)return 1;elsereturn getLeafCount(node->left)+getLeafCount(node->right);
}
/* Helper function that allocates a new node with thegiven data and NULL left and right pointers. */struct node* newNode(int data){
struct node* node = (struct node*)malloc(sizeof(struct node));node->data = data;
node->left = NULL;
node->right = NULL;
return(node);}
/*Driver program to test above functions*/int main(){
/*create a tree*/struct node *root = newNode(1);root->left = newNode(2);
root->right = newNode(3);
root->left->left = newNode(4);
root->left->right = newNode(5);
/*get leaf count of the above created tree*/printf("Leaf count of the tree is %d", getLeafCount(root));getchar();return 0;}