572 subtree of another tree

https://leetcode.com/problems/subtree-of-another-tree/

对原树里每个node判断是不是跟subtree 一样,注意必须children都一样,不多不少

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public boolean isSubtree(TreeNode root, TreeNode subRoot) {
        if (subRoot == null) return true;
        if (root == null) return false;
        if (isSame(root, subRoot)) return true;
        else return isSubtree(root.left, subRoot) || isSubtree(root.right, subRoot);
        
    }
    private boolean isSame(TreeNode root, TreeNode subroot) {
        if (subroot == null && root == null) return true;
        if (root == null || subroot == null) return false;
        if (root.val != subroot.val) return false;
        return isSame(root.left, subroot.left) && isSame(root.right, subroot.right);
    }
}

Last updated