递归toString()

时间:2014-05-05 18:41:01

标签: java recursion linked-list

我有一个doubleLinkedList,需要实现一个没有参数的递归toString()方法。这是我所拥有的,它会抛出一个NullPointerException

//Print forwards
public String recursiveToString(){
  return first.rTS();
}

//Print backwards
public String recursiveBackwardsString(){
  return last.rBS();
}


    //Recursive helper in the node class
    public String rBS(){
      if (this!=null)
        return info+" "+back.rBS();
      return "";
    }

    //Recursive helper in the node class
    public String rTS(){
      if (this!=null)
        return info+" "+next.rTS();
      return "";
    }

1 个答案:

答案 0 :(得分:1)

this在任何代码中都不会null,如果调用null中的某个方法,则在到达方法体之前抛出NullPointerException,因此,这里对null的保护不正确:

if (this != null)
    return ...

你应该这样写:

public String rBS(){
    if (back != null)
        return info+" "+back.rBS();
    return info;
}

rTS相同。