这是一个常见问题,有多个参考,但实际上没有一个回答我的具体问题。在练习在线编码时,我遇到了递归反转链表的问题。这是我正常的代码。
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不是静态值,所以即使我编写了辅助函数,我也无法访问它。有人可以帮我修改我现有的逻辑以与此方法签名对齐。
答案 0 :(得分:0)
只需将您的头部声明为全局,然后在主体内部定义即可。
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);
}
}