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

**Output:**

Leaf nodes = 9

## 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
- Sum of all leaf nodes of binary tree
- Product of all leaf nodes of binary tree
- Number of leaf nodes in the subtree of every node of an n-ary tree
- Print Sum and Product of all Non-Leaf nodes in Binary Tree
- Print the nodes of binary tree as they become the leaf node
- Print all leaf nodes of a Binary Tree from left to right
- Pairwise Swap leaf nodes in a binary tree
- Leaf nodes from Preorder of a Binary Search Tree (Using Recursion)
- Find height of a special binary tree whose leaf nodes are connected
- Print All Leaf Nodes of a Binary Tree from left to right | Set-2 ( Iterative Approach )
- Print the longest leaf to leaf path in a Binary tree
- Count the number of nodes at given level in a tree using BFS.