Java 递归地反转链表

Java 递归地反转链表,java,recursion,linked-list,Java,Recursion,Linked List,这是一个常见的问题,有多个参考文献,但没有一个真正回答我的具体问题。在练习在线编码时,我遇到了递归反转链表的问题。这是我正常工作的代码 void Reverse(Node curr){ if(curr.next == null){ head = curr; return; } Reverse(curr.next); Reverse(curr.next); Node p = curr.next; p.next = curr;

这是一个常见的问题,有多个参考文献,但没有一个真正回答我的具体问题。在练习在线编码时,我遇到了递归反转链表的问题。这是我正常工作的代码

void Reverse(Node curr){

   if(curr.next == null){
       head = curr;
       return;
   } 
   Reverse(curr.next);
   Reverse(curr.next);
   Node p = curr.next;
   p.next = curr;
   curr.next = null; 
}
但是我需要完成的方法签名如下:

Node Reverse(Node head){
}

Head不是静态值,所以即使我编写了一个helper函数,也无法访问它。有人能帮我修改现有的逻辑,使之与此方法签名一致吗

只需将您的头部声明为全局,然后在主体中定义它

class Node{
    private Node list;

    void reverseMe(Node curr){
       //your method
    }

    Node reverse(Node list){
        reverseMe(list);
        return list;
    }

    public static void main(String[] args){
        list = createHead();
        //the rest
        list = reverse(head);
    }
}

我知道这篇文章和这篇文章提供的类似解决方案有可能重复,但逻辑是完全不同的。我想坚持我当前的逻辑。由于返回类型是Node,您想返回什么到调用Reverse的方法?列表的开头。