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,
From the above two equations, we can say that L = (N – 1) * I + 1.
Below is the implementation of the above approach:
C++
#include <bits/stdc++.h>
using namespace std;
int calcNodes( int N, int I)
{
int result = 0;
result = I * (N - 1) + 1;
return result;
}
int main()
{
int N = 5, I = 2;
cout << "Leaf nodes = " << calcNodes(N, I);
return 0;
}
|
Java
class GfG
{
static int calcNodes( int N, int I)
{
int result = 0 ;
result = I * (N - 1 ) + 1 ;
return result;
}
public static void main(String[] args)
{
int N = 5 , I = 2 ;
System.out.println( "Leaf nodes = " +
calcNodes(N, I));
}
}
|
Python3
def calcNodes(N, I):
result = 0
result = I * (N - 1 ) + 1
return result
if __name__ = = '__main__' :
N = 5
I = 2
print ( "Leaf nodes = " ,
calcNodes(N, I))
|
C#
using System;
class GFG
{
static int calcNodes( int N, int I)
{
int result = 0;
result = I * (N - 1) + 1;
return result;
}
public static void Main()
{
int N = 5, I = 2;
Console.Write( "Leaf nodes = " +
calcNodes(N, I));
}
}
|
PHP
<?php
function calcNodes( $N , $I )
{
$result = 0;
$result = $I * ( $N - 1) + 1;
return $result ;
}
$N = 5; $I = 2;
echo "Leaf nodes = " .
calcNodes( $N , $I );
?>
|
Javascript
<script>
function calcNodes(N, I)
{
var result = 0;
result = I * (N - 1) + 1;
return result;
}
var N = 5, I = 2;
document.write( "Leaf nodes = " + calcNodes(N, I));
</script>
|
Complexity Analysis:
- Time Complexity: O(1)
- Auxiliary Space: O(1)