因此,作为计算机编程课程的一部分,我根据此算法反转了一个单链节点列表
“依次遍历链表,取出每个节点,作为新的第一个节点插入。”
我能够迭代地做到这一点,但现在我的教授希望我们递归地做到这一点。我正在尽我所能理解递归,但它不是很好。
因此,我将我的编码从迭代更改为我认为是递归的
private void recursiveReverse2(Node p)
{
Node lead = p;
Node tail = p;
if (p == null)
{
return;
}
if (p.next == null)
{
return;
}
current = tail.next;
lead = current.next;
current.next = null;
tail.next = lead;
current.next = head;
head = current;
recursiveReverse2(tail);
}
public void reverse2()
{
toggle(); //swithces sort of list from ascending-descending
recursiveReverse2(head); //head initialized at start of class
}
基本上,我想问我所做的是否实际上是递归。因为,recursiveReverse2()确实有效,但我只是不知道我是否实现了递归。