// 链表结构

struct List { struct List* nextl int key; };

// 递归实现反转链表

List *reverse(List *oldList, List *newHead=NULL)
{

// 记录剩余的链表 (检查oldList是否为空,能处理输入的链表头指针为空的情况)
List *next = oldList->next;

// 将当前的节点插入到newHead链表的开头
oldList->next = newHead;
newHead = oldList; 

// 递归处理剩余的链表
return (next==NULL)? newHead: reverse(oldList->next, newHead); //能够处理只有一个结点的情况

}

void main()
{
List *list;
// 调用的时候newHead使用默认的NULL
List *q = reverse(list);
}

相关文章:

  • 2021-08-15
  • 2021-06-30
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-02
猜你喜欢
  • 2021-07-03
  • 2022-12-23
  • 2022-12-23
  • 2021-09-22
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案