Duplicate subtree in Binary Tree
Submissions: 2770   Accuracy:

27.4%

  Difficulty: Medium   Marks: 4
     

Given a Binary Tree, the task is to complete the function dupSub which takes the root of the tree as the only argument and returns true if the Binary tree contains a duplicate sub-tree of size two or more.

Input :  Binary Tree 
               A
             /    \ 
           B        C
         /   \       \    
        D     E       B     
                     /  \    
                    D    E
Output : Yes

Note: Two same leaf nodes are not considered as subtree as size of a leaf node is one.

Input:
The first line of input contains an integer T denoting the no of test cases. Then T test cases follow. Each test case contains a string s representing the binary tree.
For example the string : (a(b()())(c()()) represents the below binary tree
       a
    /     \
  b       c

Output:
For each test case output will be 1 if the binary tree contains duplicate sub-tree of size two or more else 0.

Constraints:
1<=T<=50
1<=length of string<=100

Example(To be used only for expected output) :
Input:

2
(a(b(d()())(e()()))(c()(b(d()())(e()()))))
(a(b()())(c()()))

Output:
1
0


Note:The Input/Ouput format and Example given are used for system's internal purpose, and should be used by a user for Expected Output only. As it is a function problem, hence a user should not read any input from stdin/console. The task is to complete the function specified, and not to write the full code.

** For More Input/Output Examples Use 'Expected Output' option **

Contributor: Harshit Sidhwa
Author: Shubham Joshi 1


Need help with your code? Please use ide.geeksforgeeks.org, generate link and share the link here.

to report an issue on this page.