Sum of All Nodes In Binary Tree In C
Sum of all nodes in Binary Tree
Here, in this page we will write a C program to find the sum of all nodes in the given binary tree.
First, we will traverse through the left sub-tree and calculate the sum of nodes present in the left sub-tree. Similarly, we calculate the sum of nodes present in the right sub-tree and calculate total sum by adding the root’s data.
Sum of All Nodes In Binary Tree
Algorithm :
- Create a function say, calculateSum() that will calculate the sum of nodes present in the binary tree.
- It checks whether the root is null, which means that the tree is empty.
- If the tree is not empty, traverse through left subtree, calculate the sum of nodes and store it in variable say, sumLeft.
- Then, traverse through the right subtree, calculate the sum of nodes and store it in variable say, sumRight.
- Finally, calculate total sum = root->data + sumLeft + sumRight.
Code in C based on above approach
Run
#include <stdio.h>
#include <stdlib.h>
struct node
{
int data;
struct node *left;
struct node *right;
};
struct node *root = NULL;
struct node *createNode (int data)
{
struct node *newNode = (struct node *) malloc (sizeof (struct node));
newNode->data = data;
newNode->left = NULL;
newNode->right = NULL;
return newNode;
}
int calculateSum (struct node *temp)
{
int sum, sumLeft, sumRight;
sum = sumRight = sumLeft = 0;
if (root == NULL)
{
printf ("Tree is empty\n");
return 0;
}
else
{
if (temp->left != NULL)
sumLeft = calculateSum (temp->left);
if (temp->right != NULL)
sumRight = calculateSum (temp->right);
sum = temp->data + sumLeft + sumRight;
return sum;
}
}
int main ()
{
root = createNode (10);
root->left = createNode (20);
root->right = createNode (30);
root->left->left = createNode (40);
root->right->left = createNode (50);
root->right->right = createNode (60);
printf ("Sum of all nodes of binary tree: %d", calculateSum (root));
return 0;
}
Output:
Sum of all nodes of binary tree: 210

Login/Signup to comment