Open In App

# Determine the count of Leaf nodes in an N-ary tree

Given the value of ‘N’ and ‘I’. Here, represents the number of internal nodes present in an N-ary tree and every node of the N-ary can either have childs or zero child. The task is to determine the number of Leaf nodes in n-ary tree.

Examples:

Input : N = 3, I = 5
Output : Leaf nodes = 11 Input : N = 10, I = 10
Output : leaf nodes = 91

Formula: where,
I = Number of Internal nodes.
L = Leaf Nodes.
and, N = Number of children each node can have.

Derivation: The tree is an N-ary tree. Assume it has T total nodes, which is the sum of internal nodes (I) and leaf nodes (L). A tree with T total nodes will have (T – 1) edges or branches.
In other words, since the tree is an N-ary tree, each internal node will have N branches contributing a total of N*I internal branches. Therefore we have the following relations from the above explanations,

• N * I = T – 1
• L + I = T

From the above two equations, we can say that L = (N – 1) * I + 1.

Below is the implementation of the above approach:

## C++

 `// CPP program to find number``// of leaf nodes` `#include ``using` `namespace` `std;` `// Function to calculate``// leaf nodes in n-ary tree``int` `calcNodes(``int` `N, ``int` `I)``{``    ``int` `result = 0;` `    ``result = I * (N - 1) + 1;` `    ``return` `result;``}` `// Driver code``int` `main()``{``    ``int` `N = 5, I = 2;` `    ``cout << ``"Leaf nodes = "` `<< calcNodes(N, I);` `    ``return` `0;``}`

## Java

 `// Java program to find number``// of leaf nodes` `class` `GfG``{` `// Function to calculate``// leaf nodes in n-ary tree``static` `int` `calcNodes(``int` `N, ``int` `I)``{``    ``int` `result = ``0``;` `    ``result = I * (N - ``1``) + ``1``;` `    ``return` `result;``}` `// Driver code``public` `static` `void` `main(String[] args)``{``    ``int` `N = ``5``, I = ``2``;` `    ``System.out.println(``"Leaf nodes = "` `+``                        ``calcNodes(N, I));``}``}` `// This code is contributed by Prerna Saini`

## Python3

 `# Python3 program to find number``# of leaf nodes` `# Function to calculate``# leaf nodes in n-ary tree``def` `calcNodes(N, I):``    ``result ``=` `0` `    ``result ``=` `I ``*` `(N ``-` `1``) ``+` `1` `    ``return` `result` `# Driver Code``if` `__name__ ``=``=` `'__main__'``:``    ``N ``=` `5``    ``I ``=` `2` `    ``print``(``"Leaf nodes = "``,``           ``calcNodes(N, I))` `# This code is contributed``# by SHUBHAMSINGH10`

## C#

 `// C# program to find number``// of leaf nodes``using` `System;` `class` `GFG``{` `// Function to calculate``// leaf nodes in n-ary tree``static` `int` `calcNodes(``int` `N, ``int` `I)``{``    ``int` `result = 0;` `    ``result = I * (N - 1) + 1;` `    ``return` `result;``}` `// Driver code``public` `static` `void` `Main()``{``    ``int` `N = 5, I = 2;` `    ``Console.Write(``"Leaf nodes = "` `+``                  ``calcNodes(N, I));``}``}` `// This code is contributed``// by Akanksha Rai`

## PHP

 ``

## Javascript

 ``

Output

`Leaf nodes = 9`

Complexity Analysis:

• Time Complexity: O(1)
• Auxiliary Space: O(1)