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

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++

filter_none

edit
close

play_arrow

link
brightness_4
code

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


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

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


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

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


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

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


Output:

Leaf nodes = 9


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

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.