Learn Programming and technology with ease @ developerpublish.com

HomePythonPython Program to Count Non Leaf Nodes in a Tree

# Python Program to Count Non Leaf Nodes in a Tree

This Python program counts the number of non-leaf nodes in a given tree data structure. A tree is a hierarchical structure where each node can have zero or more child nodes, and non-leaf nodes are those that have at least one child.

## Problem Statement

Given a tree, the program aims to count the number of non-leaf nodes present in the tree.

## Python Program to Count Non Leaf Nodes in a Tree

```class TreeNode:
def __init__(self, value):
self.value = value
self.children = []

def count_non_leaf_nodes(node):
if not node:
return 0

if not node.children:
return 0

non_leaf_count = 1  # Initialize with 1 for the current non-leaf node

for child in node.children:
non_leaf_count += count_non_leaf_nodes(child)

return non_leaf_count

# Example tree structure
#       A
#      / \
#     B   C
#    / \   \
#   D   E   F

# Constructing the tree
root = TreeNode('A')
root.children = [TreeNode('B'), TreeNode('C')]
root.children[0].children = [TreeNode('D'), TreeNode('E')]
root.children[1].children = [TreeNode('F')]

# Count non-leaf nodes
result = count_non_leaf_nodes(root)
print("Number of non-leaf nodes:", result)
```

## How It Works

The program defines a `TreeNode` class representing a node in the tree. Each node contains a value and a list of children nodes. The `count_non_leaf_nodes` function recursively traverses the tree and counts the non-leaf nodes. If a node has no children, itâ€™s not considered a non-leaf node. Otherwise, the function traverses each child node and accumulates the count. The count starts at 1 for the current non-leaf node.

## Input/Output

### You May Also Like

#### Python Program to Remove Duplicates from a Linked List

In this Python program, we will create a singly linked list and remove duplicate elements from it. A linked list...

#### Python Program to Solve the Celebrity Problem

This Python program solves the Celebrity Problem by finding a person who is known by everyone but does not know...

#### Python Program to Solve n-Queen Problem with Recursion

This Python program uses a recursive approach to solve the n-Queens problem. It explores all possible combinations of queen placements...