子树:子树的意思是只要包含了一个结点,就得包含这个结点下的所有节点.
子结构:子结构的意思是包含了一个结点,可以只取左子树或者右子树,或者都不取。
一、代码
public boolean HasSubtree(TreeNode root1,TreeNode root2) {boolean result = false;if(root1!=null&&root2!=null){if(root1.val==root2.val){result = HasSubtree01(root1,root2);}if(!result)result = HasSubtree(root1.left,root2);if(!result)result = HasSubtree(root1.right,root2);}return result;}//当根节点相同的时候才调用此函数来递归public static boolean HasSubtree01(TreeNode root1,TreeNode root2) {if(root1==null&&root2!=null)return false;if(root2==null)return true;if(root1.val!=root2.val)return false;return HasSubtree01(root1.left,root2.left)&&HasSubtree01(root1.right,root2.right);}
