题目描述
建立长度为n的单链表,然后将其数据元素逆置,即第1个元素变为最后一个元素,第2个元素变为倒数第2个元素,以此类推,最后一个元素变为第1个元素。(处理的数据类型为字符型。必须使用链表完成。)
输入
第一行为链表长度n;
第二行为链表中的n个数据元素的值。逆置后的原始值
输出
逆置后的原始值
递归解法
递归的关键问题
- 找到重复子问题
- 递归结束条件
题目分析
函数体
建设当前结点为phead
我们可以先将phead-next先逆置在将其与phead链接
再将phead与逆置后的phead->next链接
ListNode* reverseList(ListNode* phead)
{
//逆置phead->next链表,递归调用函数reverseList
ListNode* newhead = reverseList(phead->next);
//将逆置后的phead->next与phead相连
phead->next->neaxt = phead;
//将phead->next置空
phead->next = NULL
}
结束条件
当前只用一个结点或者没有结点时不需要逆置了,直接返回当前结点即可
ListNode* reverseList(ListNode* phead)