Open In App

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

Last Updated : 16 Sep, 2022
Comments
Improve
Suggest changes
Like Article
Like
Report

Given the value of 'N' and 'I'. Here, I    represents the number of internal nodes present in an N-ary tree and every node of the N-ary can either have N    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;
}
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
<?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
?>
JavaScript
<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:

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

Article Tags :
Practice Tags :

Similar Reads