Populate Inorder Successor for all nodes

Given a Binary Tree where each node has the following structure, write a function to populate the next pointer for all nodes. The next pointer for every node should be set to point to inorder successor.

struct node 
{ 
  int data; 
  struct node* left; 
  struct node* right; 
  struct node* next; 
}

Initially, all next pointers have NULL values. Your function should fill these next pointers so that they point to inorder successor.

class Solution {
    Node prev = null;

    public void populateInOrder(Node root) {
        if (root == null)
            return;
        populateInOrder(root.left);
        if (prev != null)
            prev.next = root;
        prev = root;
        populateInOrder(root.right);
    }
}

Last updated