本文主要是介绍设L为带头结点的单链表,编写算法实现从尾到头反向输出每个结点的值。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述:设L为带头结点的单链表,编写算法实现从尾到头反向输出每个结点的值。
分析: 从尾到头反向输出可以考虑使用头插法。
void Reverse(LinkList L) {LNode *p = L->next; // 指针 p 指向链表的第一个结点LNode *r; // 临时指针 r,用于保存下一个结点的位置L->next = NULL; // 将原链表的尾部指针置为 NULL,以便反转后的链表正确终止// 开始遍历链表,反转结点指针while (p) {r = p->next; // 保存下一个结点的位置p->next = L->next; // 将当前结点的指针指向反转后的链表头部L->next = p; // 更新链表头部指针p = r; // 移动到下一个结点}// 打印反转后的链表的值,注意这里可能会导致死循环,如果只是想反转链表而不需要打印,可以移除这个循环while (L->next) {printf("%d ", L->next->data); // 打印结点的值L = L->next; // 移动到下一个结点}
}
这篇关于设L为带头结点的单链表,编写算法实现从尾到头反向输出每个结点的值。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!