Zapomniałeś po prostu jednego nawiasu wąsatego zamykającego. Ten kod się u mnie kompiluje: http://pastebin.com/zSWzG7yq
Dodatkowo przerobiłem tą klasę wewnętrzną na statyczną. Zastanów się czy chcesz mieć ją niestatyczną (tzn ze wskaźnikiem do klasy TreeBST, która jest jej klasą zewnętrzną) czy też statyczną (bez tego wskaźnika). W przypadku, gdy stosujesz klasy niestatyczne i np przepinasz jeden węzeł z jednego drzewa do drugiego, to możesz mieć problemy z wyciekami pamięci. Załóżmy taką sytuację:
drzewoA
węzełA = drzewoA.new Node
drzewoB
węzełB = drzewoB.new Node
Teraz np przepinamy węzełB do drzewaA i chcemy usunąć drzewoB. Jeżeli Node jest klasą niestatyczną to niestety drzewoB nie będzie mogło zostać wyrzucone (odśmiecone), bo węzełB by na niego wskazywał. Natomiast jeżeli Node byłaby klasą wewnętrzną statyczną to wycieku by nie było, bo węzełB nie miałby wskaźnika do drzewoB (zakładając, że sam nie dodasz takiego).