How to print out all path from root to leaf of a given binary tree


This is a continuation of my post How to create a binary tree in c#.In this post, I will show you how to print all path from root to leaf of a given binary tree in c#. Let’s consider following binary tree.

4

2 5

1 3

For the above tree, there are three paths from the root to leaf

Path 1 : 4 2 1

Path 2 : 4 2 3

Path 3 : 4 5

public void PrintPath()
        {
            int[] path = new int[100];
            printPaths(_root, path, 0);
        }
        private void printPaths(Node node, int[] path, int pathLen)
        {
            if (node == null) return;

            // append this node to the path array 
            path[pathLen] = node.Data;
            pathLen++;

            // it's a leaf, so print the path that led to here 
            if (node.Left == null && node.Right == null)
            {
                PrintArray(path, pathLen);
            }
            else
            {
                // otherwise try both subtrees 
                printPaths(node.Left, path, pathLen);
                printPaths(node.Right, path, pathLen);
            }
        }

        private void PrintArray(int[] path, int pathLen)
        {
            for (int i = 0; i < pathLen; i++)
            {
                Console.Write(path[i] + " ");
            }
            Console.WriteLine();
        }

Happy Coding 😊


Reactions

Post a Comment

0 Comments

Close Menu