Related Articles

# Print all full nodes in a Binary Tree

• Difficulty Level : Easy
• Last Updated : 22 Jun, 2021

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 tra­ver­sals (Inorder, Pre­order, Pos­torder, level order traversal) and keep printing nodes that have mode left and right children as non-NULL.

## C++

 `// A C++ program to find the all full nodes in``// a given binary tree``#include ``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

 ``

Output:

`1 3`

Time Complexity : O(n)
This article is contributed by Rakesh Kumar. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.