import java.io.*;
import java.util.Scanner;


class Polynomial {

   class Term {
      int coef;
      int exp;
      Term link;
   }

   private Term head;  // 첫번째 항을 가리키는 레퍼런스 변수
   private Term tail;  // 마지막 항을 가리키는 레퍼런스 변수

   public Polynomial() {
      head = tail = null;
   }

   // @param coef 계수
   // @param exp 지수
   public void addTerm(int coef, int exp) {
      Term term = new Term();
      term.coef = coef;
      term.exp = exp;
      term.link = null;

      if (head == null) {  // 처음으로 항이 추가되는 경우
         head = tail = term;
      } else {
         tail.link = term;
         tail = term;  // 마지막을 가리키는 항을 재지정
      }
   }


   // 출력할 때 사용
   // @return 객체를 문자열로 반환 (예: 3x^15+2x^3+4x^2+x+5 )
  
   public String toString() {
      Term x = head;
      StringBuffer sb = new StringBuffer();
      int seq = 0;
      for (x = head; x != null; x = x.link) {
         if(seq >= 1){
            if(x.coef > 0){
               sb.append("+");
            }
         }
         seq++;
     
         if(x.coef == 0) {
            continue;
         }else if(x.coef == 1){
            if(x.exp ==0) {
               sb.append("1");
            }else if(x.exp == 1) {
               sb.append("x");
            }else
               sb.append("x^").append(x.exp);
        }else {
           if(x.exp ==0) {
              sb.append(x.coef);
           }else if(x.exp==1) {
              sb.append(x.coef).append("x");
           }else {
              sb.append(x.coef).append("x^").append(x.exp);
           }
           
        }
  
      }
      if(sb.toString() == null) {
         return "0";
      }else {
         return sb.toString();
      }
   }


    // 두 개의 다항식을 더한다.
    // @param p1 첫번째 다항식
    // @param p2 두번째 다항식
    // @return 두 개의 다항식을 더한 결과
   public static Polynomial polyAdd(Polynomial a, Polynomial b) {
      Term p = a.head;
      Term q = b.head;
      Polynomial c = new Polynomial();
     
      while(p!=null && q!=null) {
         if(p.exp == q.exp) {
            int sum = p.coef + q.coef;
            if(sum!=0) {
               c.addTerm(sum, p.exp);
            }else {
               c.addTerm(0, p.exp);
            }
            p=p.link;
            q=q.link;
         }else if(p.exp < q.exp){
            c.addTerm(q.coef, q.exp);
            q=q.link;
         }else {
            c.addTerm(p.coef, p.exp);
            p=p.link;
         }
      }
      while(p!=null) {
         c.addTerm(p.coef, p.exp);
         p=p.link;
      }
      while(q!=null) {
         c.addTerm(q.coef, q.exp);
         q=q.link;
      }
      return c;
   }
}
class Main {
   public static void main(String[] args) throws Exception {
      Scanner scan = new Scanner(System.in);
     
      // 첫번째 다항식 입력
      Polynomial p1 = new Polynomial();
      int no = scan.nextInt();
      for(int i = 0; i < no; i++) {
         int coef = scan.nextInt();
         int exp  = scan.nextInt();
         p1.addTerm(coef, exp);
      }
     
      Polynomial p2 = new Polynomial();
      no = scan.nextInt();
      for(int i = 0; i < no; i++) {
         int coef = scan.nextInt();
         int exp  = scan.nextInt();
         p2.addTerm(coef, exp);
        
      }
     
     
      // 두개의 다항식 덧셈
      Polynomial p3 = Polynomial.polyAdd(p1,p2);
     
      System.out.print(p3);  // 이것은 System.out.print(p3.toString())과 동일
   }
}



다항식 덧셈하는 프로그램인데

3
2 3 4 2 5 0
3
-2 3 -4 2 -5 0

이렇게 입력할때는 결과값으로 0이출력되게 하고싶은데 이코드는 아무것도 안나옴;;

뭘바꿔야하는거임?