After spending the last couple of hours nailing down a delete function all I have to say now is I finally (if i didnt already) understand all the fuss over being careful with pointers and the pains they cause.
I have to say making the tree program was great practice with pointers but now I look at my delete function (which works fine, for all cases) and just think "ugh, now thats ugly".
Also, I was wondering if anyone would like to share a delete function that they wrote in C (for a binary search tree of course). From what others have told me I went about it the right way, its just that I thought there would be a better way. I just had to recur through the tree until a NULL, blah blah blah....