题目
不带表头的单链表,
结点类型:
typedef struct LNode{
int data;
struct LNode* next;
}Node;
,使用递归函数反向显示以h为头指针的单链表的所有值。
题解
//反向显示以h为头指针的单链表的所有节点值
void Display(LNode *h)
{
if(h==NULL)
return ;
else
{
Display(h->next);
cout<<h->data<<" ";
//如果是正向显示的话,cout写在Display递归上面
}
}
为什么要把输出语句放在递归函数Display()后面呢?
因为反向输出的过程是这样的:
从链首开始 递归、递归、递归… 直到 h->next==NULL,
之后才是从链尾开始反向 输出、输出、输出、输出…。
而正向输出的过程是:
从链首 输出、递归、输出、递归… 直到 h->next==NULL