# Subtree of Another Tree

This question is similar to check if two trees are symmetric or not.

https://leetcode.com/problems/subtree-of-another-tree/

Given two non-empty binary trees s and t, check whether tree t has exactly the same structure and node values with a subtree of s. A subtree of s is a tree that consists of a node in s and all of this node’s descendants. The tree s could also be considered as a subtree of itself.

Example 1:
Given tree s:

`3    / \   4   5  / \ 1   2`

Given tree t:

`4   / \ 1   2`

Return true, because t has the same structure and node values with a subtree of s.

Example 2:
Given tree s:

`3    / \   4   5  / \ 1   2    /   0`

Given tree t:

`4  / \ 1   2`

Return false.

Here is the Solution:

`/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode() {} *     TreeNode(int val) { this.val = val; } *     TreeNode(int val, TreeNode left, TreeNode right) { *         this.val = val; *         this.left = left; *         this.right = right; *     } * } */class Solution {    String s1= "";    public boolean isSubtree(TreeNode s, TreeNode t) {        if(t==null)            return true;        if(s == null)            return false;        if(isSymmetric(s,t))            return true;        return isSubtree(s.left,t) || isSubtree(s.right,t);    }        public static boolean isSymmetric(TreeNode left,TreeNode right){        if(left ==  null || right == null)            return left == right;        if(left.val!=right.val)            return false;        return isSymmetric(left.left,right.left) && isSymmetric(left.right,right.right);    }}`

Happy Coding!

Software Developer

## Object-Oriented Programming (OOP)

Get the Medium app