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的方法?列表的开头。