idu*_*ude 4 java methods overloading linked-list data-structures
目前我正在创建一种方法来反转java中的链表,但它需要两种方法:
public void reverse(){
reverse(head);
}
private void reverse(Node h){
if(h.next==null){
System.out.print(h.data+" ");
return;
}
reverse(h.next);
System.out.print(h.data+" ");
}
Run Code Online (Sandbox Code Playgroud)
这样我用0参数调用reverse方法,然后调用另一个反向方法.有没有办法让他们1方法而不改变我的LinkedList类的其他方面?
提前致谢!
有一个公共方法调用带有额外参数的私有递归方法是很常见的.有关此Arrays.deepToString(Object[])示例,请参阅源代码.
但是,在您的情况下,最好完全避免递归.递归的一个问题是你只能在获得a之前将方法调用嵌套到某个深度StackOverflowError.
另一种方法是使用循环代替.以下将有效:
public void reverse(){
List<Node> nodes = new ArrayList<>();
for (Node n = head; n != null; n = n.next)
nodes.add(n);
for (int i = nodes.size() - 1; i >= 0; i--)
System.out.print(nodes.get(i).data + " ");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
81 次 |
| 最近记录: |