如何仅使用两个指针反转单链表?
我想知道是否存在一些逻辑来仅使用两个指针来反转链表。
以下是用于逆转使用三个指针即单链表p,q,r:
struct node {
int data;
struct node *link;};void reverse() {
struct node *p = first,
*q = NULL,
*r;
while (p != NULL) {
r = q;
q = p;
p = p->link;
q->link = r;
}
first = q;}还有其他替代方法来反转链表吗?在时间复杂度方面,逆转单链表的最佳逻辑是什么?
一只甜甜圈
守着星空守着你
守候你守候我
随时随地看视频慕课网APP
相关分类