Inorder Successor in Binary Search Tree Using Parent link

Algorithms – Inorder Successor in Binary Search Tree Using Parent link

Objective: Given a Binary Search tree in which every node has a link to its parent, find the inorder successor of a node.

What is Inorder Successor: Inorder successor of a node is the next node in the inorder traversal of the tree. For the last node in a tree, inorder successor will be NULL

Similar Problems :
Inorder Successor in Binary Search Tree without parent link
Inorder Successor in Binary Tree

Input: A binary search tree with nodes liked to its parents, a node x

Output: The inorder successor of node x.

Example:

InOrder Successor example

Approach:

Time Complexity : O(h) , h – height of the tree

There will be 3 cases to solve this problem

Say the node for whose inorder successor needs to be find is x.

Case 1 : If the x has a right child then its inorder successor will the left most element in the right sub tree of x.

InOrder Successor - Case 1

Case 2: If the x doesn’t have a right child then its inorder successor will the one of its ancestors, using parent link keep traveling up till you get the node which is the left child of its parent. Then this parent node will be the inorder successor.

InOrder Successor - Case 2

Case 3: if x is the right most node in the tree then its inorder successor will be NULL.

Complete Code:


Output:

Tree : 3 5 7 10 17 15
InOrder Successor of 7 is 10
InOrder Successor of 10 is 17

__________________________________________________
Top Companies Interview Questions..-

Google Microsoft Amazon Facebook more..

If you find anything incorrect or you feel that there is any better approach to solve the above problem, please write comment.
__________________________________________________

You may also like...

%d bloggers like this: