Monthly Archives: April 2025

C# || How To Find Duplicate Subtrees Using C#

/js/scroll.js?=1

The following is a module with functions which demonstrates how to find duplicate subtrees using C#.


1. Find Duplicate Subtrees – Problem Statement

Given the root of a binary tree, return all duplicate subtrees.

For each kind of duplicate subtrees, you only need to return the root node of any one of them.

Two trees are duplicate if they have the same structure with the same node values.

Example 1:


Input: root = [1,2,3,4,null,2,4,null,null,4]
Output: [[2,4],[4]]

Example 2:


Input: root = [2,1,1]
Output: [[1]]

Example 3:


Input: root = [2,2,2,3,null,3,null]
Output: [[2,3],[3]]


2. Find Duplicate Subtrees – Solution

The following is a solution which demonstrates how to find duplicate subtrees.

QUICK NOTES:
The highlighted lines are sections of interest to look out for.

The code is heavily commented, so no further insight is necessary. If you have any questions, feel free to leave a comment below.

Once compiled, you should get this as your output for the example cases:


[[2,4],[4]]
[[1]]
[[2,3],[3]]