public boolean HasSubtree(TreeNode root1,TreeNode root2) { if (root1 == null || root2 == null){ return false; } return preTrace(root1,root2) || HasSubtree(root1.left,root2) || HasSubtree(root1.right,root2); } private boolean preTrace(TreeNode root1,TreeNode root2){ if (root2 == null){ return true; } if (root1 == null){ return false; } if (root1.val != root2.val){ return false; } if (root2.left == null && root2.right == null){ return true; } return preTrace(root1.left,root2.left) && preTrace(root1.right,root2.right); }