#include <>#include <>#include <>struct BinaryTreeNode{ int val; struct BinaryTreeNode* left; struct BinaryTreeNode* right;};int calLeafNums(struct BinaryTreeNode* bt){ if(bt == NULL) { return 0; } if(bt->left == NULL && bt->right == NULL) { //printf("leaf node val: %d\n", bt->val); //for test return 1; } return calLeafNums(bt->left) + calLeafNums(bt->right);}int main(){ struct BinaryTreeNode btn[13]; int i, num; //init memset(btn, 0, sizeof(struct BinaryTreeNode) * 13); for(i = 0; i < 13; ++i) btn[i].val = i; btn[0].left = &btn[1]; btn[0].right = &btn[2]; btn[1].left = &btn[3]; btn[1].right = &btn[4]; btn[2].left = &btn[5]; btn[2].right = &btn[6]; btn[3].left = &btn[7]; btn[3].right = &btn[8]; btn[8].left = &btn[9]; btn[8].right = &btn[10]; btn[9].left = &btn[11]; btn[9].right = &btn[12]; //test num = calLeafNums(&btn[0]); printf("leaf num: %d\n", num); return 0;}