Generalized Node class to accept left/right/parent pointers