我有两个班,ListNode
和MyList
。
列表节点:
public class ListNode {
private String str;
private ListNode next;
public ListNode(String str) {
this.str = str;
next = null;
}
public String getString() {
return str;
}
public ListNode getNext() {
return next;
}
public void setNext(ListNode next) {
this.next = next;
}
}
我的列表
public MyList RecReverse() { //my attempt at the recursive method
if (head.getNext() == null) {
return this;
}
MyList remainder = new MyList();
remainder.head = head.getNext(); //start rest of list at the 2nd thing
ListNode temp = new ListNode(head.getString()); //get the first thing in list
temp.setNext(null); //set to null to indicate end of list
remainder.RecReverse(); //reverse the remaining things in the list
remainder.head.setNext(temp); //then add it to the end of the reversed list
return remainder;
}
所以你可以看到这个MyList
类有一个ListNode
我们需要使用的变量。要求该RecReverse
方法不带参数并返回一个MyList
对象。该方法还必须使用函数Rev(L) = Rev(L`).x
,其中L`
是列表的其余部分,并且x
是列表中的第一件事。
目前,当我反转列表并打印它时,它只打印以下内容:
二
一
在控制台中