Question: Given the root pointer to a binary tree, find the sum of all its elements.
Input: Sample Tree (Pointer to node 1 is given).
Output: Sum = 15
This is a very simple problem. Since the tree follows a recursive sub-structure, we can recursively call left tree sum, right tree sum and then add their values to the current node data.
#include<stdio.h> #include<malloc.h> struct binaryTreeNode{ int data; struct binaryTreeNode * left; struct binaryTreeNode * right; }; int sumOfBinaryTree(struct binaryTreeNode * root) { // Terminating condition if(root == NULL) { return 0; } else { //Recursively call the addition of root + left + right return (root -> data + sumOfBinaryTree(root -> left) + sumOfBinaryTree(root -> right)); } }