uses dfs-post order making printTree function independent of queue; uses preprocessor NODES; reomves NN, middle variables