Sure create one material that has the tree you want. Select the tree and make it a node group. (Shortcut Ctrl–G). Hook some of the inputs to the group input and some of the outputs to the group output. An expanded group might look like this silly example:

Once you've created such a group you can add it the same way you would add an individual node, by typing Shift–A and going to Group in the select menu and picking it by name. I didn't change the name of the above group so it shows up as Node Group in the menu. You should name your node groups so that you can tell what they do.

In this silly example, any Material that uses the group can have a unique value for the Noise Texture's Scale input, but if you change any other input, such as the Voronoi Texture's Scale input, it changes it for every material that uses the group.
That is, Group Inputs are unique to a given use of the node group, but any internal setting is shared by every use.