Q:
Given a Binary Tree, write a function getLevelDiff which returns the difference between the sum of nodes at odd level and the sum of nodes at even level
belongs to collection: Interview C++ coding problems/challenges | tree
Interview C++ coding problems/challenges | tree
- Find the level in a binary tree with given sum K
- Check whether a Binary Tree is BST (Binary Search Tree) or not
- Print vertical sum of a binary tree
- Print Boundary Sum of a Binary Tree
- Given a Binary Tree T and a sum S, write a program to check whether there is a root to leaf path in that tree with the input sum S
- Given a Binary Tree write a program to print the nodes which don’t have a sibling node. Print all the nodes separated by space which do not have sibling in the tree in sorted order if every node has a tree than print -1
- Given a Two Binary Trees, write a function that returns true if one is mirror of other, else returns false
- Given a Binary Tree where each node has positive and negative values. Convert this to a tree where each node contains the sum of the left and right sub trees in the original tree. The values of leaf nodes are changed to 0
- Given a binary Tree, check whether the tree is symmetric or not
- Write a program to print Reverse Level Order Traversal of a binary tree
- Given an array where elements are sorted in ascending order, convert it to a height balanced BST. For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1
- Given a Binary Tree, write a function getLevelDiff which returns the difference between the sum of nodes at odd level and the sum of nodes at even level
- Write a function to detect if two trees are isomorphic
- Given an expression tree evaluate the expression tree
- Given a Binary Tree and a number K. Print all nodes that are at distance K from root (root is considered at distance 0 from itself)
- Given a Binary Tree, print Right view of it. Right view of a Binary Tree is set of nodes visible when tree is visited from Right side
- Given a Binary Tree, find diameter of it. The diameter of a tree is the number of nodes on the longest path between two leaves in the tree
- Given a BST and a value x, write a function to delete the nodes having values greater than or equal to x. The function will return the modified root
- Given a binary tree, print the diagonal traversal of the binary tree
- Given a Binary Tree, Print the corner nodes at each level. The node at the leftmost and the node at the rightmost
- Given a Binary Search Tree and 2 nodes value n1 and n2, your task is to find the lowest common ancestor of the two nodes. Assume that n1 and n2 both existing node value of the tree
- Given a string that contains ternary expressions. The expressions may be nested. You need to convert the given ternary expression to a binary Tree and return the root
- Given a binary tree, print the bottom view from left to right
- Given a Binary Tree and a target key, write a function that prints all the ancestors of the key in the given binary tree
- Given a Binary Tree of size N, write a program that prints all the possible paths from root node to the all the leaf node\'s of the binary tree
- Given a binary tree, where every node value is a number between 0-9. Find the sum of all the numbers which are formed from root to leaf paths
- Given a binary tree, and two node values your task is to find the minimum distance between them
- Find the k-th smallest element in a given binary search tree (BST)
- Write a program to print Level Order Traversal in spiral form of a binary tree
- Given a binary Tree find the maximum path sum. The path may start and end at any node in the tree
- Given an array pre[] of N nodes representing preorder traversal of BST. The task is to print its postorder traversal
- Given two n-ary trees, the task is to check if they are mirrors of each other or not
- Find number of nodes in a complete Binary Tree

C++ programming
Example:
for, the above tree the odd level sum is 3 (root itself) and even level sum is 10 (leaf nodes here) thus the difference is 3-10=-7
Algorithm:
We solve the problem with help of level order traversal.
Function getLevelDiff( Node* root)
1. Initialize two flags, one for even level & other for odd levels.
falgo is initialized to 1 because we are starting with root which is considered to be odd level.
2. Initialize two variables, one to store sum of all odd levels & other to store sum of all even levels.
3. Do a level order traversal being conscious about current level whether odd or even. We can do this using the flags. When flage=1 and flago=0 we are at an even level. So we add the traversed node values with sume. When flago=1 and flage=0 we are at an odd level. So we add the traversed node values with sumo.
We every time push NULL at end of each level & swap values between the flags at end of each level. For example when root is processed (odd level) & we encounter a NULL, we change flage from 0 to 1, flago from 1 to 0 as we are gong to process a even level now
Finally we achieve both the sums.
4. Return sumo-sume
Pseudo code:
//initialization flage=0,flago=1; queue<node* style="box-sizing: border-box;"> q; //queue for level order traversal sume=0,sumo=0; Node* temp; EnQueue(q,root); EnQueue(q,NULL); While (q is not empty){ temp =DeQueue(q); IF(temp==NULL){ IF(q is not empty){ EnQueue(q,NULL); } //change flags IF(flago){ flage=1; flago=0; } ELSE{ flago=1; flage=0; } } ELSE{ IF(flage) //at even level sume+=temp->data; IF(flago) //at odd level sumo+=temp->data; IF(temp->left) EnQueue(q, temp->left); IF(temp->right) EnQueue(q, temp->right); } } return sumo-sume;</node*>C++ implementation
Output
Example with explanation
Let the tree be, 1 / \ 2 2 / \ / \ 3 4 4 3 So the odd levels’ sum is = 1+14=15 Even level’s sum is = 4 So the difference is: 11 --------------------------------------------------------- At level 1: It's odd level 1 is processed current odd level sum:1 --------------------------------------------------------- At level 2: It’s even level 2 is processed current even level sum:2 2 is processed current even level sum:4 --------------------------------------------------------- At level 3: It’s odd level 3 is processed current odd level sum:4 4 is processed current odd level sum:8 4 is processed current odd level sum:12 3 is processed current odd level sum:15 --------------------------------------------------------- Traversal ends Finally, Odd level sum=15 Even level sum=4 Difference =15-4=11need an explanation for this answer? contact us directly to get an explanation for this answer