public class Solution { public boolean HasSubtree(TreeNode root1,TreeNode root2) { if(root2==null){ return false; } if(root1==null){ return false; } return isSubtree(root1,root2)||HasSubtree(root1.left,root2)||HasSubtree(root1.right,root2); } public static boolean isSubtree(TreeNode root1,TreeNode root2){ if(root2==null)//关键,顺序不能返 return true; if(root1==null){ return false; } if(root1.val==root2.val){//这里一定不要直接比较他们两个地址是否相同。 return isSubtree(root1.left,root2.left)&&isSubtree(root1.right,root2.right); } return false; } }