Thursday, May 5, 2022

Question 59 : How can you print leaf nodes of binary tree?

 Steps for counting number of leaf nodes are:

  • If node is null then return 0
  • If encounterd leaf node(i.e. node.left is null and node.right is null) then print the node.
  • Recursively visit leaf subtree and right subtree.

Code for recursion will be:

// Recursive Solution // print leaf nodes public static void printLeafNodes(TreeNode node) { if(node==null) return; if(node.left == null && node.right == null) { System.out.printf("%d ",node.data); } printLeafNodes(node.left); printLeafNodes(node.right); }

Example:
Binary tree:



Let's create java program for counting the number of leaf nodes:

public class BinaryTreePrintLeafNodes { public static class TreeNode { int data; TreeNode left; TreeNode right; TreeNode(int data) { this.data=data; } } // Recursive Solution // print leaf nodes public static void printLeafNodes(TreeNode node) { if(node==null) return; if(node.left == null && node.right == null) { System.out.printf("%d ",node.data); } printLeafNodes(node.left); printLeafNodes(node.right); } public static void main(String[] args) { // Creating a binary tree TreeNode rootNode=createBinaryTree(); System.out.println("Printing leaf nodes in binary tree :"); printLeafNodes(rootNode); } public static TreeNode createBinaryTree() { TreeNode rootNode =new TreeNode(40); TreeNode node20=new TreeNode(20); TreeNode node10=new TreeNode(10); TreeNode node30=new TreeNode(30); TreeNode node60=new TreeNode(60); TreeNode node50=new TreeNode(50); TreeNode node70=new TreeNode(70); TreeNode node5=new TreeNode(5); TreeNode node55=new TreeNode(55); rootNode.left=node20; rootNode.right=node60; node20.left=node10; node20.right=node30; node60.left=node50; node60.right=node70; node10.left=node5; node50.right=node55; return rootNode; } }

Run above program and you will get following output:
Printing leaf nodes in binary tree : 5 30 55 70

Don't miss the next article! 
Be the first to be notified when a new article or Kubernetes experiment is published.                            

 

 Share This

You may also like

Kubernetes Microservices
Python AI/ML
Spring Framework Spring Boot
Core Java Java Coding Question
Maven AWS