public TreeNode<N> deepCopy() { TreeNode<N> newNode = new TreeNode(this.value); for (TreeNode<N> child : this.children) newNode.addChildNode(child.deepCopy()); return newNode; }