Objective: Given a binary tree, print all nodes will are full nodes.
Full Nodes: Nodes Which has both the children, left and right are called Full Nodes
Approach:
quite simple Solution.
- Do the any of the traversal (inorder, preorder, postorder etc).
- During traversal, check the node if it has left child and right child, If yes then print it
Complete Code:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class FullNodes { | |
public void FindFullNodes(Node root) { | |
// do the traversal and print all the nodes which has left and right | |
// child | |
if (root != null) { | |
FindFullNodes(root.left); | |
if (root.left != null && root.right != null) { | |
System.out.print(root.data + " "); | |
} | |
FindFullNodes(root.right); | |
} | |
} | |
public static void main(String[] args) { | |
Node root = new Node(1); | |
root.left = new Node(2); | |
root.right = new Node(3); | |
root.left.left = new Node(4); | |
root.left.right = new Node(5); | |
root.left.left.right = new Node(8); | |
FullNodes f = new FullNodes(); | |
System.out.print("Full Nodes are "); | |
f.FindFullNodes(root); | |
} | |
} | |
class Node { | |
int data; | |
Node left; | |
Node right; | |
public Node(int data) { | |
this.data = data; | |
} | |
} |
Output:
Full Nodes are 2 1