【发布时间】:2016-09-10 03:10:56
【问题描述】:
我试图递归地遍历 List 类中的每个节点,以查找某个整数是否存在于列表中的某个节点中。
这是我的头文件:
class List
{
public:
bool find(int d) const { return false; }
private:
Node *head;
bool findNode(const Node*, int) const;
};
下面是两个函数的代码:
bool List::find(int d) const
{
return findNode(head, d);
}
bool List::findNode(const Node* n, int d) const
{
if (n == NULL)
return false;
else if (n->data == d)
return true;
else
findNode(n->next, d);
}
现在我的问题是:我是否通过在 findNode 函数中添加 if (n == NULL) 语句使其始终返回 false 来毁灭自己?如果头文件中已经有return false,我认为我不需要这样做。我应该删除那条线吗?有更好的方法吗?
【问题讨论】:
标签: c++ recursion linked-list