Najprościej (nie jest to rozwiązanie optymalne, ale najłatwiejsze) będzie Ci rekurencyjnie (albo w jakiejś pętli typu while) sprawdzać rodzica, do czasu aż dojdziesz do najwyższego poziomu.
Rekurencja akurat przydałaby się w sytuacji odwrotnej, czyli gdy potrzeba znaleźć w drzewie węzeł o zadanej wartości. Wtedy rekurencyjne wywołania pozwolą krótko i wygodnie sprawdzać każdą gałąź i każdy węzeł, aż do samych liści.
Tutaj wystarczy sposób iteracyjny – zwykła pętla, iterująca dotąd, aż sprawdzany węzeł będzie korzeniem drzewa. Pod warunkiem, że każdy węzeł drzewa zawiera referecję do węzła-rodzica, rzecz jasna. ;)