以递归方式在 Java 中反转链表
2022-08-31 09:47:28
我已经为一个类的Java项目工作了一段时间。它是链表的实现(这里称为 ,包含称为 的简单节点)。问题是,一切都必须使用递归算法来完成。我能够用一种方法把所有事情都做好:AddressList
ListNode
public AddressList reverse()
列表节点:
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);
}
当我在这里时,有人看到这条路线有任何问题吗?