输出null

时间:2012-07-12 02:53:35

标签: java list linked-list

我遇到的问题是方法输出null而不是返回列表的第(n + 1)项。我有什么东西可以忽略。

    public static ListElement getItem(ListElement head, int n){
    if(n == 0){                 
        return head;

    }else if(head == null){

            return null;
    }else{                      

        return  getItem(head.getNext(),n+1);

    }

}

3 个答案:

答案 0 :(得分:1)

此代码没有意义。如果head不为null,则会调用getItem(head.getNext(), n+1),但最终head将等于nulln将永远不会为0),因此它将返回null 1}}。也许你的意思是

return getItem(head.getNext(), n-1)

答案 1 :(得分:0)

从n + 1变为n-1(为了得到递归的基本情况,n == 0):

return  getItem(head.getNext(),n-1);

答案 2 :(得分:0)

你应该做n-1,而不是n + 1。 n对应于所需元素的位置,如果删除列表中的顶部项,则所有内容都向上移动一个位置,而不是向上移动。

更改为getItem(head.getNext(),n-1);