Print Paths from root to all leaf nodes in a binary tree.

Objective: Given a binary tree, Print paths from root to all leaf nodes

Input: A binary tree

Example:

Print paths from root to all leaf nodes

Print paths from root to all leaf nodes

Approach:

  • Do the preOrder traversal.
  • Store the current node in an array, say Path[] and maintain the length say pathLength.
  • check if you are at leaf node (both the left and right child of parent will be null).
  • If not then keep traversing by making recursive calls to root.left and root.right. Pass the path and pathLen as parameter so that at each level have its own copy of path and and its length.
  • If you hit the leaf node then print the array.
  • See Code

Complete Code:


Output :

1 2 4 7
1 3 6 8
1 3 6 9

__________________________________________________
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...

  • Mahesh

    Do inorder traversal and store current path from root, when you reach leaft node, print path

    private static void printPaths(Node root, String s) {
    if(root == null)
    {

    return;
    }
    printPaths(root.left, s+”->”+root.data);
    if(root.left == null && root.right == null)
    System.out.println(s+”->”+ root.data);
    printPaths(root.right, s+root.data);

    }

%d bloggers like this: