我目前有2个类,Images和ImageNode。在ImageNode类中,我有一个反转链表的递归方法。我相信我的代码对于该方法是正确的,但是我对如何在Images类中调用此方法感到困惑。
ImageNode方法---
public ImageNode reverseUsingPrevious(ImageNode previous) {
if(previous == null) return previous;
ImageNode next = previous.getNext();
if(next == null) return previous;
previous.setNext(null);
ImageNode rev = reverseUsingPrevious(next);
next.setNext(previous);
return rev;
}
图像方法----
private void reverseRec() {
cursor.reverseUsingPrevious(head);
//the cursor is the currently selected image(node), head is the start of the linked list
}
我不是100%肯定我应该解析为reverseUsingPrevious方法。
答案 0 :(得分:1)
在head =
之前添加cursor.reverseUsingPrevious(head);
来更新头部。
额外提示:
即使方法reverseUsingPrevious
可能原样工作,它也根本不调用本地对象上的任何方法或变量(除了调用reverseUsingPrevious
),所以它可能只是同样一直是静止的。
但是,您可以删除参数(ImageNode previous)
,而不是将其设为静态,并将previous
的每个实例替换为this
。
现在,您不是调用reverseUsingPrevious(node)
,而是将节点放在前面:node.reverseUsingPrevious()
。