以递归方式反转Java中的链表
我一直在为一个类的Java项目工作。它是链表的实现(此处称为AddressList包含调用的简单节点ListNode)。问题在于,所有事情都必须通过递归算法来完成。我能做的一切都很好,没有一种方法:public AddressList reverse()
ListNode:
public class ListNode{
public String data;
public ListNode next;}现在我的reverse函数只调用一个辅助函数,该函数接受一个允许递归的参数。
public AddressList reverse(){
return new AddressList(this.reverse(this.head));}我的助手功能有签名private ListNode reverse(ListNode current)。
目前,我使用堆栈迭代地工作,但这不是规范要求的。我在C中找到了一个递归反转的算法,并手工将其转换为Java代码,但是它有效,但我对此并不了解。
编辑:没关系,我在此期间弄清楚了。
private AddressList reverse(ListNode current, AddressList reversedList){
if(current == null)
return reversedList;
reversedList.addToFront(current.getData());
return this.reverse(current.getNext(), reversedList);}虽然我在这里,有没有人看到这条路线有任何问题?
智慧大石
慕仙森
慕斯王
慕妹3146593
随时随地看视频慕课网APP