Given a binary tree and a value K, the task is to check if every node of the binary tree has either value of the node as K or at least one of its adjacent connected nodes has value K.
Input: 1 / \ 0 0 / \ \ 1 0 1 / / \ \ 2 1 0 5 / / 3 0 / 0 K = 0 Output: False Explanation: We can observe that some leaf nodes are having value other than 0 and are not connected with any adjacent node whose value is 0. Input: 0 / \ 2 1 \ 0 K = 0 Output: True Explanation: Since, all nodes of the tree are either having value 0 or connected with adjacent node having value 0.
- The idea is to simply perform preorder traversal and pass reference of parent node recursively.
- While traversing for each node check the following conditions:
- if value of the node is K or,
- if its parent node value is K or,
- if any of its child node value is K.
- If any node of the tree doesn’t satisfy any of the given three conditions then, return False, else return True.
Below is the implementation of the above approach:
Time complexity: O(N), N is the number of nodes of the tree.
Auxillary Space: O(1)
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.
- Check if a binary tree is subtree of another binary tree using preorder traversal : Iterative
- Check whether a binary tree is a full binary tree or not | Iterative Approach
- Check if a binary tree is subtree of another binary tree | Set 1
- Check whether a binary tree is a full binary tree or not
- Check whether a given binary tree is skewed binary tree or not?
- Check if a binary tree is subtree of another binary tree | Set 2
- Given level order traversal of a Binary Tree, check if the Tree is a Min-Heap
- Check if max sum level of Binary tree divides tree into two equal sum halves
- Check whether a binary tree is a complete tree or not | Set 2 (Recursive Solution)
- Check if a given Binary Tree is height balanced like a Red-Black Tree
- K-th ancestor of a node in Binary Tree
- Kth ancestor of a node in binary tree | Set 2
- Sum of cousins of a given node in a Binary Tree
- Search a node in Binary Tree
- Get Level of a node in a Binary Tree
- K-th ancestor of a node in Binary Tree | Set 3
- Check if the given binary tree has a sub-tree with equal no of 1's and 0's | Set 2
- Replace node with depth in a binary tree
- Preorder predecessor of a Node in Binary Tree
- Postorder successor of a Node in Binary Tree
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.
Improved By : stutipathak31jan