add Count Non Leaf Nodes of Tree
parent
fee85368ba
commit
b5ab918a2a
|
@ -0,0 +1,76 @@
|
|||
|
||||
|
||||
/* QUESTION->
|
||||
Given a Binary Tree of size N, your task is to complete the function countNonLeaf TreeNodes(), that should return the count of all the non-leaf TreeNodes of the given binary tree.
|
||||
*/
|
||||
|
||||
|
||||
/* Prerequisites
|
||||
Recursion
|
||||
Post-Order Traversal
|
||||
*/
|
||||
|
||||
/* Complexity
|
||||
Time -> O(n);
|
||||
space -> O(Height of tree);
|
||||
*/
|
||||
|
||||
// Instructions -> just copy to run
|
||||
|
||||
#include<bits/stdc++.h>
|
||||
using namespace std;
|
||||
|
||||
// Basic Structure of a Tree
|
||||
struct TreeNode {
|
||||
int data;
|
||||
struct TreeNode *left;
|
||||
struct TreeNode *right;
|
||||
|
||||
TreeNode(int val) {
|
||||
data = val;
|
||||
left = NULL;
|
||||
right = NULL;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
//Function to calculate to count non-Leaf of Tree
|
||||
int countNonLeaf ( TreeNode* root) {
|
||||
if(root==NULL){
|
||||
return 0;
|
||||
}
|
||||
int sum=0;
|
||||
|
||||
sum+= countNonLeaf(root->left);
|
||||
|
||||
sum+=countNonLeaf(root->right);
|
||||
|
||||
if(root->left!=NULL || root->right!=NULL){
|
||||
sum++;
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
|
||||
|
||||
|
||||
int main(){
|
||||
TreeNode* root = new TreeNode(1);
|
||||
root->left = new TreeNode(2);
|
||||
root->right = new TreeNode(3);
|
||||
root->left->left = new TreeNode(4);
|
||||
root->left->right = new TreeNode(5);
|
||||
root->right->right = new TreeNode(7);
|
||||
|
||||
/*
|
||||
1----non leaf Node=1
|
||||
/ \
|
||||
2 3----non leaf Nodes =2
|
||||
/ \ \
|
||||
4 5 7----non leaf Nodes=0
|
||||
|
||||
Expected ans-> height=3
|
||||
*/
|
||||
cout << "Count of non leaf nodes of tree is : " << countNonLeaf(root) << '\n';
|
||||
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue