I suspect your teacher's issue is not with the substance of your definition but with the phrasing you give it when you say that the nodes "contain" their children (or references to them).
Mathematicians would more often say that the tree simply has an abstract set of nodes, where the definition of "tree" doesn't care what each node looks like in details. Things like which nodes are children of which would usually be specified as something external to the nodes themselves -- say, in a separate set of edges, or partial functions $l$ or $r$ from nodes to other nodes, with particular properties. Similarly for other data you imagine the nodes to come with (which mathematicians would tend to call "labels").
When you define a particular concrete tree you would of course often let the nodes be objects where you encode things that the $l$ and $r$ functions pick out of them. But this would be an implementation detail for that particular tree which cannot be seen when you just say "Let $T$ be a tree".
You'd also need to say something like no node is both a left child and a right child, and every node is reachable from the root in finitely many steps.