

Given a binary tree -

Doubly Linked List is -
4 5 3
And after removal of all the leaves, the inorder traversal of the tree will look like -
2 1
1. Two nodes may have the same value associated with them.
2. The root node will be fixed and will be provided in the function.
3. The order of nodes in the doubly linked list should be the order of leaves in the tree from left to right.
3. You need to modify the binary tree in place and you only need to return the head of the doubly linked list
The first line of the input contains a single integer T, representing the number of test cases.
The first line of each test case contains an integer 'n', representing the number of nodes in the tree.
The second line of each test case will contain the values of the nodes of the tree in the level order form ( -1 for NULL node)
Refer to the example for further clarification.
Example:
Consider the binary tree

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).
For each test case, two lines will be printed-
Line 1: Doubly Linked List
Line 2: Inorder Traversal of the updated binary tree.
You do not need to print anything. It has already been taken care of. Just implement the given function.
1 <= T <= 100
1 <= N <= 3000
Time Limit: 1sec
In this approach, we use the brute force approach to solve the problem. We first traverse and collect all the leaf nodes in a list, then make a Doubly Linked List from them.
In this approach, we use tree traversal using recursion to modify the binary tree by extracting leaf nodes and adding them in the newly created Doubly Linked List.
Steps:
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