Subtree

    1. * Definition of TreeNode:
    2. * public class TreeNode {
    3. * public int val;
    4. * public TreeNode(int val) {
    5. * this.val = val;
    6. * this.left = this.right = null;
    7. * }
    8. * }
    9. */
    10. /**
    11. * @param T1, T2: The roots of binary tree.
    12. * @return: True if T2 is a subtree of T1, or false.
    13. */
    14. if (T2 == null) return true;
    15. if (T1 == null) return false;
    16. return identical(T1, T2) || isSubtree(T1.left, T2) || isSubtree(T1.right, T2);
    17. }
    18. if (T1 == null && T2 == null) return true;
    19. if (T1 == null || T2 == null) return false;
    20. if (T1.val != T2.val) return false;
    21. return identical(T1.left, T2.left) && identical(T1.right, T2.right);
    22. }