One way to solve this problem is to traverse the main binary tree (root) in a recursive manner and at each node compare it with the given subRoot. The comparison can be done using another recursive function that checks if the trees have the same structure and node values. If a match is found, then return true, otherwise continue the traversal until all nodes are checked. Here is an example implementation in Python:

```
def is_same_tree(p, q):
    if not p and not q:
        return True
    if not p or not q:
        return False
    if p.val != q.val:
        return False
    return is_same_tree(p.left, q.left) and is_same_tree(p.right, q.right)

def is_subtree(root, subRoot):
    if not root:
        return False
    if is_same_tree(root, subRoot):
        return True
    return is_subtree(root.left, subRoot) or is_subtree(root.right, subRoot)
```

The first function `is_same_tree` checks if two trees have the same structure and node values. The second function `is_subtree` recursively checks if a subtree exists in the main tree. It returns true if a matching subtree is found, otherwise false.
Date le radici di due alberi binari root e subRoot, restituisce true se esiste un sottoalbero di root con la stessa struttura e gli stessi valori di nodo di subRoot e false in caso contrario. Un sottoalbero di un albero binario è un albero costituito da un nodo nell'albero e da tutti i discendenti di questo nodo. L'albero albero potrebbe anche essere considerato come un sottoalbero di se stesso.