System.out.println("s = " + s);
hccpro(hcc) 是不是说,这句是向回找
public String toString() {
    String s = ":" + c;
    if(next != null)
      s += next.toString();
    return s;
  }

解决方案 »

  1.   

    每次生成一个新的Snake对象,(char)(x + 1))的值传给c,  s要被打印出来,必须调用toString()方法,所以就是:a:b:c:d:e
      

  2.   

    Snake(int i, char x) {
        c = x;
        if(--i > 0)
          next = new Snake(i, (char)(x + 1));//注意这一句;当main函数
          //里使用这句Snake s = new Snake(5, 'a')时会嵌套调用直到
          //i=1;(char)(x + 1)使用了一次操作符重载和重新造型。 
    }