void freeTree ( treeNode root ) { while ( ! treeFinished ( root ) ) { if ( root . lc == null && root . rc == null ) { root = root . parent ; } else if ( root . lc == null && root . rc != null ) { //Schau ob rc ein Blatt ist if ( isLeaf ( root . rc ) ) { //Gebe rechtes Kind frei root . rc . free ( ) ; root . rc = null ; } else { //Fahre mit rechtem Kind fort root = root . rc ; } } else if ( root . lc != null ) { if ( isLeaf ( root . lc ) ) { root . lc . free ( ) ; root . lc = null ; } else { root = root . lc ; } } } root . free ( ) ; }
frees a tree of its storage