typedef struct node{
int data;
node * next;
}node, *linklist;
Node Reverse(linklist L) {
node * current = L -> next; //current指向首元结点
node * prev = NULL; //prev是上一个结点的地址,对于首元结点,它的上一个地址将是NULL
while (current) {
node * next = current -> next; //next指向当前结点的下一个结点
current -> next = prev; //遍历链表,将每个结点的指针域指向其上一个结点
prev = current; //下次循环中,当前结点变为上一个结点
current = next; //下一个结点变为当前结点
}
/* 跳出循环后,current和next指针都是NULL,prev指向最后一个结点。*/
/* 调整头指针head */
head = prev;
return head; //返回头结点地址
}
数据结构 - 链表:迭代方法实现反转链表
最新推荐文章于 2023-04-18 11:08:25 发布