2022.10.21递归。
任务描述
本关任务:本题要求实现一个函数,实现从尾到头打印一个单链表的功能。例如,如果给出单链表1 2 3 4 5,则应该输出5 4 3 2 1 。
注意:每个数据后面一个空格。
编程要求
根据提示,在右侧编辑器补充代码,完成从头到尾输出单链表的功能。
测试说明
平台会对你编写的代码进行测试:
测试输入:
5
1 2 3 4 5
预期输出:
5 4 3 2 1
开始你的任务吧,祝你成功!
C++代码
#include <stdio.h>
#include <stdlib.h>
#include "LNode.h"
int main(void)
{
int n, i;
scanf("%d", &n);
int* arr = (int*)malloc(n * sizeof(int));
for (i = 0; i < n; i++)
scanf("%d", &arr[i]);
LinkNode* head = buildList(arr, n);
printListFromTail2Head(head);
printf("\n");
free(arr);
return 0;
}
/* 从尾到头打印单链表 */
void printListFromTail2Head(LinkNode* head)
{
/**************************begin***************************/
LinkNode *current,*prev,*temp1;
current = head;
prev =NULL;
while(current!=NULL)
{
temp1 =current->next;
current->next=prev;
prev=current; current =temp1;}
head = prev;
LinkNode* p=head;
while(p!=NULL){
printf("%d ",p->data );
p=p->next;
}
/**************************end*****************************/
}