Personalmente, un polinomio per me è un vettore di coefficienti

a0 + a1*x + a2*x^2... + an*x^n

Quindi lo andrei a rappresentare con un array di Razionale.

Ossia, avrei un costruttore Poly:

codice:
public Poly(Razionale[] r) {
  //r è un array di n+1 elementi, dove n è il grado massimo del polinomio
}
poi puoi fare tutti i metodi accessori che vuoi (per esempio, dato il grado di un monomio, ritornare il Razionale coefficiente del tale monomio)

Per quanto riguarda il verificare se un Razionale è zero, visto che quella classe non è tanto user-friendly, puoi inventarti questo:
codice:
Razionale zero = new Razionale(0,1);

if (zero.lessOrEqual(tuoRazionale) && tuoRazionale.lessOrEqual(zero)) { // è 0
}