C++程序 将给定链表的最后元素移动到前面
编写一个函数,在给定的单链表中将最后一个元素移动到前面。例如,如果给定的链表是1->2-> 3-> 4-> 5,则该函数应将列表更改为5-> 1-> 2-> 3-> 4。
算法: 遍历链表直到最后一个节点。使用两个指针:一个用于存储最后一个节点的地址,另一个用于存储倒数第二个节点的地址。循环结束后执行以下操作。
- 使倒数第二个节点成为最后一个节点(secLast->next = NULL)。
- 将最后一个节点设置为头部(last->next = * head_ref)。
- 将最后一个节点设置为头部(* head_ref = last)。
输出:
时间复杂度: O(n),其中n是给定链接列表中的节点数。
辅助空间: O(1),因为使用常量变量