【发布时间】:2019-07-30 13:22:43
【问题描述】:
我无法弄清楚为什么我的递归函数不起作用。每次我运行代码时,链表都不会反向打印。
typedef struct numberline NUMBERLINE;
NUMBERLINE * startptr;
NUMBERLINE * newptr;
NUMBERLINE * curptr;
NUMBERLINE *revRecursive(NUMBERLINE *curptr)
{
NUMBERLINE *q, *head;
if(curptr->next == NULL)
{
return curptr;
}
head = curptr;
q = curptr = revRecursive(curptr);
while(q->next != NULL)
{
q = q->next;
q->next = head;
head->next = NULL;
return curptr;
}
}
也许我在参数中使用了错误的指针,或者我没有正确实现我不确定。
【问题讨论】:
-
@mjwills 哦,哎呀标签错误
-
时间到learn how to debug your program。一个快速的rubber duck debugging 应该足以找到问题(特别是如果您一致地缩进代码)。
-
您面临的问题是什么?发布有关正在传递的输入和程序输出的更多信息
-
您的橡皮鸭调试会话应该帮助您自己阐明函数的用途、前置条件和后置条件,包括参数和返回值的重要性。不要浪费:将这些详细信息记录在与函数相关的文档注释中,即使只是为了您自己的未来利益。
-
您的代码不包含任何打印任何内容的方法
标签: c list recursion reverse singly-linked-list