从另一个反转链表的类调用递归方法

时间:2014-09-19 09:40:28

标签: java recursion

我目前有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方法。

1 个答案:

答案 0 :(得分:1)

head =之前添加cursor.reverseUsingPrevious(head);来更新头部。

额外提示:

即使方法reverseUsingPrevious可能原样工作,它也根本不调用本地对象上的任何方法或变量(除了调用reverseUsingPrevious),所以它可能只是同样一直是静止的。

但是,您可以删除参数(ImageNode previous),而不是将其设为静态,并将previous的每个实例替换为this

现在,您不是调用reverseUsingPrevious(node),而是将节点放在前面:node.reverseUsingPrevious()