一、题目内容

image.png

二、题解

解法1:

思路

递归,新增一个函数判断,A是否从root开始,包含B,如果不包含,则看下A.left与A.right

代码

  1. public class Solution {
  2. public boolean isSubStructure(TreeNode A, TreeNode B) {
  3. return (A != null && B != null) && (recur(A, B) || isSubStructure(A.left, B) || isSubStructure(A.right, B));
  4. }
  5. /**
  6. * 判断是否包含
  7. *
  8. * @param A
  9. * @param B
  10. * @return
  11. */
  12. public boolean recur(TreeNode A, TreeNode B) {
  13. if (B == null) {
  14. return true;
  15. }
  16. if (A == null || A.val != B.val) {
  17. return false;
  18. }
  19. return recur(A.left, B.left) && recur(A.right, B.right);
  20. }
  21. }