Почему бы не сделать просто процедуру сравнения объектов типа Node? обычно она реализуется функцией cmp или встроенными "магическими" методами, как в питоне.
А потом скармливать в функцию сортировки как один из параметров эту сравнивающую функцию.
Аналогично можно использовать результат этой функции при построении бинарного дерева для того чтоб решить к какому поддереву должна относиться текущая вершина.