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,

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

Below is the implementation of the above approach:  

// 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;
}

                    
// 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 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# 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
// 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
?>

                    
<script>
 
// Javascript program to find number
// of leaf nodes
 
// Function to calculate
// leaf nodes in n-ary tree
function calcNodes(N, I)
{
    var result = 0;
 
    result = I * (N - 1) + 1;
 
    return result;
}
 
// Driver code
var N = 5, I = 2;
 
document.write("Leaf nodes = " + calcNodes(N, I));
 
// This code is contributed by rutvik_56
 
</script>

                    

Output
Leaf nodes = 9

Complexity Analysis:


Article Tags :