如何制作递归单链表(C ++)

时间:2016-11-05 19:27:07

标签: c++ recursion singly-linked-list

我的书要求我对单链表进行递归定义。我根本不知道如何做到这一点。有人可以帮我拿样品吗?感谢

1 个答案:

答案 0 :(得分:0)

它就像普通的链表一样,但迭代是通过递归而不是循环来执行的。

首先,阅读一点点:What is recursion and when should I use it?

例如,查找最后一个节点的基于循环的函数可以是:

Node * getLast(Node * current)
{
    while (current->next == null)
    { // loop until no more nodes
        current = current.next;
    }
    return current; // return last node
}

虽然递归版本仅检查当前节点是否为最后一个,并且如果存在下一个节点则使用下一个节点调用自身。

Node * getLast(Node * current)
{
    if (current->next == null)
    { // found last node. return it
        return current;
    }
    else
    { // see if next node is last node
        return getLast(current->next);
    }
}