/** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } */ public class Solution { public boolean HasSubtree(TreeNode root1,TreeNode root2) { if(root1 == null || root2 == null) { return false; } return temp(root1,root2) || HasSubtree(root1.left,root2) || HasSubtree(root1.right,root2); } public boolean temp(TreeNode A, TreeNode B){ if(B == null){ return true; } if(A == null) { return false; } if(A.val == B.val){ return temp(A.left,B.left) && temp(A.right,B.right); } return false; } }