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 the leaf node (both the left and right child of the 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 a parameter so that at each level have its own copy of the path and its length.
  • If you hit the leaf node then print the array.
  • See Code

Code:

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

1 thought on “Print Paths from root to all leaf nodes in a binary tree.”

  1. 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);

    }

    Reply

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.