正在输出null



我遇到一个问题,该方法输出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);
    }
}

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

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

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

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

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

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

相关内容

  • 没有找到相关文章

最新更新