fork download
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. struct TreeNode
  5. {
  6. char data;
  7. TreeNode* left;
  8. TreeNode* right;
  9. TreeNode* parent;
  10. };
  11.  
  12. typedef struct TreeNode TreeNode;
  13.  
  14.  
  15. TreeNode* createTreeNode(char data)
  16. {
  17. TreeNode* temp = (TreeNode *)malloc(sizeof(TreeNode));
  18. temp->data = data;
  19. temp->left = temp->right = temp->parent = NULL;
  20. return temp;
  21. }
  22.  
  23.  
  24. int count_leaves(TreeNode* root)
  25. {
  26. if(root==NULL) return 0;
  27. else if(root->left == NULL && root->right==NULL)
  28. {
  29. return 1;
  30. }
  31. else
  32. return count_leaves(root->left) + count_leaves(root->right);
  33. }
  34.  
  35. int count_nodes(TreeNode* root)
  36. {
  37.  
  38. }
  39.  
  40.  
  41. int main()
  42. {
  43. TreeNode* a = createTreeNode('A');
  44. TreeNode* b = createTreeNode('B');
  45. TreeNode* c = createTreeNode('C');
  46. TreeNode* d = createTreeNode('D');
  47. TreeNode* f = createTreeNode('F');
  48. TreeNode* g = createTreeNode('G');
  49.  
  50. a->left = b;
  51. b->parent = a;
  52.  
  53. a->right = c;
  54. c->parent = a;
  55.  
  56. b->left = d;
  57. d->parent = b;
  58.  
  59. c->left = f;
  60. f->parent = c;
  61.  
  62. c->right = g;
  63. g->parent = c;
  64.  
  65. TreeNode *root = a;
  66.  
  67. a = b = c = d = f = g = NULL;
  68.  
  69. printf("Number of Leaves: %d\n", count_leaves(root));
  70. printf("Number of Nodes: %d\n", count_leaves(root));
  71. return 0;
  72. }
  73.  
Success #stdin #stdout 0s 5308KB
stdin
Standard input is empty
stdout
Number of Leaves: 3
Number of Nodes: 3