Algo.Java.IsSameTree

// https://leetcode.com/problems/subtree-of-another-tree/description/
public class Main {
    public static void main(String[] args) {

    }

    public boolean isSubtree(TreeNode root, TreeNode subRoot) {
          if (root == null) {
              return false;
          }

          if (isSameTree(root, subRoot)) {
              return true;
          }

          return isSubtree(root.left, subRoot) || isSubtree(root.right, subRoot);
    }

    private boolean isSameTree(TreeNode node1, TreeNode node2) {
        if (node1 == null && node2 == null) {
            return true;
        }

        if (node1 == null || node2 == null || node1.val != node2.val) {
            return false;
        }

        return isSameTree(node1.left, node2.left) && isSameTree(node1.right, node2.right);
    }
}
This entry was posted in Без рубрики. Bookmark the permalink.