如何仅使用两个指针反转单链表?
我想知道是否存在一些逻辑来仅使用两个指针来反转链表。
以下是用于逆转使用三个指针即单链表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;}
还有其他替代方法来反转链表吗?在时间复杂度方面,逆转单链表的最佳逻辑是什么?
守着星空守着你
守候你守候我
相关分类