Print all full nodes in a Binary Tree Last Updated : 13 Sep, 2023 Summarize Comments Improve Suggest changes Share Like Article Like Report Given a binary tree, print all nodes will are full nodes. Full Nodes are nodes which has both left and right children as non-empty. Examples: Input : 10 / \ 8 2 / \ / 3 5 7 Output : 10 8 Input : 1 / \ 2 3 / \ 4 6 Output : 1 3 This is a simple problem. We do any of the traversals (Inorder, Preorder, Postorder, level order traversal) and keep printing nodes that have mode left and right children as non-NULL. Implementation: C++ // A C++ program to find the all full nodes in // a given binary tree #include <bits/stdc++.h> using namespace std; struct Node { int data; struct Node *left, *right; }; Node *newNode(int data) { Node *temp = new Node; temp->data = data; temp->left = temp->right = NULL; return temp; } // Traverses given tree in Inorder fashion and // prints all nodes that have both children as // non-empty. void findFullNode(Node *root) { if (root != NULL) { findFullNode(root->left); if (root->left != NULL && root->right != NULL) cout << root->data << " "; findFullNode(root->right); } } // Driver program to test above function int main() { Node* root = newNode(1); root->left = newNode(2); root->right = newNode(3); root->left->left = newNode(4); root->right->left = newNode(5); root->right->right = newNode(6); root->right->left->right = newNode(7); root->right->right->right = newNode(8); root->right->left->right->left = newNode(9); findFullNode(root); return 0; } Java // Java program to find the all full nodes in // a given binary tree public class FullNodes { // Traverses given tree in Inorder fashion and // prints all nodes that have both children as // non-empty. public static void findFullNode(Node root) { if (root != null) { findFullNode(root.left); if (root.left != null && root.right != null) System.out.print(root.data+" "); findFullNode(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.right.left = new Node(5); root.right.right = new Node(6); root.right.left.right = new Node(7); root.right.right.right = new Node(8); root.right.left.right.left = new Node(9); findFullNode(root); } } /* A binary tree node */ class Node { int data; Node left, right; Node(int data) { left=right=null; this.data=data; } }; //This code is contributed by Gaurav Tiwari Python3 # Python3 program to find the all # full nodes in a given binary tree # Binary Tree Node """ utility that allocates a newNode with the given key """ class newNode: # Construct to create a newNode def __init__(self, key): self.data = key self.left = None self.right = None # Traverses given tree in Inorder # fashion and prints all nodes that # have both children as non-empty. def findFullNode(root) : if (root != None) : findFullNode(root.left) if (root.left != None and root.right != None) : print(root.data, end = " ") findFullNode(root.right) # Driver Code if __name__ == '__main__': root = newNode(1) root.left = newNode(2) root.right = newNode(3) root.left.left = newNode(4) root.right.left = newNode(5) root.right.right = newNode(6) root.right.left.right = newNode(7) root.right.right.right = newNode(8) root.right.left.right.left = newNode(9) findFullNode(root) # This code is contributed by # Shubham Singh(SHUBHAMSINGH10) C# // C# program to find the all full nodes in // a given binary tree using System; public class FullNodes { // Traverses given tree in Inorder fashion and // prints all nodes that have both children as // non-empty. static void findFullNode(Node root) { if (root != null) { findFullNode(root.left); if (root.left != null && root.right != null) Console.Write(root.data + " "); findFullNode(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.right.left = new Node(5); root.right.right = new Node(6); root.right.left.right = new Node(7); root.right.right.right = new Node(8); root.right.left.right.left = new Node(9); findFullNode(root); } } /* A binary tree node */ class Node { public int data; public Node left, right; public Node(int data) { left = right = null; this.data = data; } }; // This code is contributed by 29AjayKumar JavaScript <script> // JavaScript program to find the all full nodes in // a given binary tree /* A binary tree node */ class Node { constructor(data) { this.left=this.right=null; this.data=data; } } // Traverses given tree in Inorder fashion and // prints all nodes that have both children as // non-empty. function findFullNode(root) { if (root != null) { findFullNode(root.left); if (root.left != null && root.right != null) document.write(root.data+" "); findFullNode(root.right); } } let root = new Node(1); root.left = new Node(2); root.right = new Node(3); root.left.left = new Node(4); root.right.left = new Node(5); root.right.right = new Node(6); root.right.left.right = new Node(7); root.right.right.right = new Node(8); root.right.left.right.left = new Node(9); findFullNode(root); // This code is contributed by rag2127 </script> Output1 3 Time Complexity : O(n)Space complexity: O(n) for Recursive Stack Space in case of Skewed Tree Comment More infoAdvertise with us Next Article Print Levels of all nodes in a Binary Tree K kartik Improve Article Tags : Tree DSA Practice Tags : Tree Similar Reads Print all possible N-nodes Full Binary Trees Given an integer n, the task is to find all possible Full Binary Trees with n nodes. The value at the nodes does not contribute to be a criteria for different Full Binary Tree, except for NULL,so take them as 0.A full binary tree is a binary tree in which every node has exactly 0 or 2 children.Examp 13 min read Print all internal nodes of a Binary tree Given a Binary tree, the task is to print all the internal nodes in a tree. An internal node is a node which carries at least one child or in other words, an internal node is not a leaf node. Here we intend to print all such internal nodes in level order. Consider the following Binary Tree: Input: O 7 min read Print Levels of all nodes in a Binary Tree Given a Binary Tree and a key, write a function that prints levels of all keys in given binary tree. For example, consider the following tree. If the input key is 3, then your function should return 1. If the input key is 4, then your function should return 3. And for key which is not present in key 7 min read Print all nodes in a binary tree having K leaves Given a binary tree and a integer value K, the task is to find all nodes in given binary tree having K leaves in subtree rooted with them. Examples : // For above binary tree Input : k = 2 Output: {3} // here node 3 have k = 2 leaves Input : k = 1 Output: {6} // here node 6 have k = 1 leaveRecommend 7 min read Sum of all nodes in a binary tree Give an algorithm for finding the sum of all elements in a binary tree. In the above binary tree sum = 106. Recommended PracticeSum of Binary TreeTry It!The idea is to recursively, call left subtree sum, right subtree sum and add their values to current node's data. Implementation: C++ /* Program to 15+ min read All Leaves of a Bnary Tree - Print in Order Given a binary tree, we need to print all leaf nodes of the given binary tree from left to right. That is, the nodes should be printed in the order they appear from left to right in the given tree. For Example, Input : Root of the below treeOutput : 4 6 7 9 10Corner Cases : For a tree with single no 11 min read Like