# 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 <bits/stdc++.h> ` `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; ` `} ` |

*chevron_right*

*filter_none*

## 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 ` |

*chevron_right*

*filter_none*

## 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 ` |

*chevron_right*

*filter_none*

## 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 ` |

*chevron_right*

*filter_none*

## PHP

`<?php ` `// PHP program to find number ` `// of leaf nodes ` ` ` `// Function to calculate ` `// leaf nodes in n-ary tree ` `function` `calcNodes(` `$N` `, ` `$I` `) ` `{ ` ` ` `$result` `= 0; ` ` ` ` ` `$result` `= ` `$I` `* (` `$N` `- 1) + 1; ` ` ` ` ` `return` `$result` `; ` `} ` ` ` `// Driver code ` `$N` `= 5; ` `$I` `= 2; ` ` ` `echo` `"Leaf nodes = "` `. ` ` ` `calcNodes(` `$N` `, ` `$I` `); ` ` ` `// This code is contributed ` `// by Akanksha Rai ` `?> ` |

*chevron_right*

*filter_none*

**Output:**

Leaf nodes = 9

Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: **DSA Self Paced**. Become industry ready at a student-friendly price.

## Recommended Posts:

- Count Non-Leaf nodes in a Binary Tree
- Program to count leaf nodes in a binary tree
- Iterative program to count leaf nodes in a Binary Tree
- Count of leaf nodes of the tree whose weighted string is a palindrome
- Construct XOR tree by Given leaf nodes of Perfect Binary Tree
- Print all leaf nodes of an n-ary tree using DFS
- Sum of all leaf nodes of binary tree
- Product of all leaf nodes of binary tree
- Print the nodes of binary tree as they become the leaf node
- Print Sum and Product of all Non-Leaf nodes in Binary Tree
- Pairwise Swap leaf nodes in a binary tree
- Print all leaf nodes of a binary tree from right to left
- Print all leaf nodes of a Binary Tree from left to right
- Number of leaf nodes in the subtree of every node of an n-ary tree
- Maximum sum of leaf nodes among all levels of the given binary tree
- Maximum sum of non-leaf nodes among all levels of the given binary tree
- Generate Complete Binary Tree in such a way that sum of non-leaf nodes is minimum
- Print left and right leaf nodes separately in Binary Tree
- Print leaf nodes in binary tree from left to right using one stack
- Leaf nodes from Preorder of a Binary Search Tree (Using Recursion)

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.