Inorder Successor of a node in Binary Tree. Given a node x. Find it's inorder successor.

You have been given an arbitrary binary tree and a node of this tree. You need to find the inorder successor of this node in the tree.

The inorder successor of a node in a binary tree is that node that will be visited immediately after the given node in the inorder traversal of the tree. If the given node is visited last in the inorder traversal, then its inorder successor is NULL.

The inorder traversal of a binary tree is the traversal method in which for any node its left subtree is visited first, then the node itself, and then the right subtree.

Note
1. Each node is associated with a unique integer value. 

2. The node for which the successor is to be found is guaranteed to be part of the tree.
Input Format:
The first line contains a single integer 'T' representing the number of test cases. 

The first 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.

The second and the last line of each test case will contain the value of the node for which the inorder successor is to be found.

Example: 
Consider the binary tree:

altImage

The input of the tree depicted in the image above will be like: 
 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).
Output Format:
For each test case, print a single line that contains the value of the successor node, or NULL if it does not have an inorder successor.

The output of each test case will be printed in a separate line.
Note:
You do not need to print anything, it has already been taken care of. Just implement the given function. 
Constraints:
1 <= 'T' <= 100
2 <= 'N' <= 10 ^ 3  
1 <=  'NODEVALUE' <= 10 ^ 9

Where 'N' is the number of nodes and 'NODEVALUE' is the value of the node.

Time Limit: 1sec.
CodingNinjas
author
2y
Inorder Traversal
  • The fact that all the data values are unique makes the solution look very intuitive.
  • We can simply store the inorder traversal of the given tree in some data structure, most probably a...read more
CodingNinjas
author
2y
Inorder
  • This problem can be solved without actually storing the whole inorder traversal of the tree if we can observe some properties of the inorder traversal of a binary tree.
    As we know, in the inorde...read more
CodingNinjas
author
2y
Reverse inorder
  • According to the definition of the inorder successor, it is the node which is visited immediately after the given node. Thus if we somehow visit the successor node before the given node...read more
Add answer anonymously...
SAP Developer Associate Interview Questions
Stay ahead in your career. Get AmbitionBox app
qr-code
Helping over 1 Crore job seekers every month in choosing their right fit company
65 L+

Reviews

4 L+

Interviews

4 Cr+

Salaries

1 Cr+

Users/Month

Contribute to help millions
Get AmbitionBox app

Made with ❤️ in India. Trademarks belong to their respective owners. All rights reserved © 2024 Info Edge (India) Ltd.

Follow us
  • Youtube
  • Instagram
  • LinkedIn
  • Facebook
  • Twitter