


For the given tree,
The maximum height difference is 1. The height difference of node 1 is the absolute difference of the height of subtree with root node 2, and the height of subtree with root node 3, which is 1. Hence the answer is 1.
Elements are in the level order form. The input consists of values of nodes separated by a single space in a single line. In case a node is null, we take -1 in its place.
For example, the input for the tree depicted in the below image would be :

1
2 3
4 -1 5 6
-1 7 -1 -1 -1 -1
-1 -1
Explanation :
Level 1 :
The root node of the tree is 1
Level 2 :
Left child of 1 = 2
Right child of 1 = 3
Level 3 :
Left child of 2 = 4
Right child of 2 = null (-1)
Left child of 3 = 5
Right child of 3 = 6
Level 4 :
Left child of 4 = null (-1)
Right child of 4 = 7
Left child of 5 = null (-1)
Right child of 5 = null (-1)
Left child of 6 = null (-1)
Right child of 6 = null (-1)
Level 5 :
Left child of 7 = null (-1)
Right child of 7 = null (-1)
The first not-null node (of the previous level) is treated as the parent of the first two nodes of the current level.
The second not-null node (of the previous level) is treated as the parent node for the next two nodes of the current level and so on.
The input ends when all nodes at the last level are null (-1).
The above format was just to provide clarity on how the input is formed for a given tree.
The sequence will be put together in a single line separated by a single space. Hence, for the above-depicted tree, the input will be given as:
1 2 3 4 -1 5 6 -1 7 -1 -1 -1 -1 -1 -1
The first line of the input contains an integer, 'T,’ denoting the number of test cases.
The first line of each test case contains the elements of the tree in the level order form separated by a single space. If any node does not have a left or right child, take -1 in its place. Refer to the example for further clarification.
For each test case, print a single integer that denotes the maximum height difference for the given tree.
Print the output of each test case in a separate line.
You do not need to print anything. It has already been taken care of. Just implement the given function.
1 <= T <= 10
1 <= N <= 10^6
1 <= nodeVal <=10^9
Time limit: 1 sec
This approach will create a function height(node) that will calculate the height of the node.
We will travel through all nodes, call the height function, and calculate the height difference between the left and right subtree and update the maximum height difference of the tree. We will traverse all nodes using traverse(node) function.
As we have discussed in the previous approach, we are traversing through each node and calculating the heights of subtrees, and updating the maximum height difference.
In this approach, we will implement the height of the node as well as the maximum height difference using a single function.
We will calculate the height of the subtrees and compare the maximum height difference using a recursive function recFunc(node). The function recFunc(node) will return an array containing two values of height of the tree, and maximum height difference in the subtree with node as root.
In this approach, we will use a queue to traverse through all the nodes in a level order manner, and we will store all nodes in a stack. We will also declare a HashMap to store the height of each node. While removing the nodes from the stack, it will follow the reverse order, and we will compute the heights of the bottom level first and store them in HashMap and use these values to calculate the height of their parents. Then we will compare the height difference for each node and will update the maxDiff value accordingly.
Inorder Traversal
Inorder Traversal
Inorder Traversal
Inorder Traversal
Inorder Traversal
Postorder Traversal
Postorder Traversal
Height of Binary Tree
Height of Binary Tree
Height of Binary Tree
Height of Binary Tree
Locked Binary Tree
Maximum Island Size in a Binary Tree