链表中,怎样实现各结点的逆置?用C++

来源:百度知道 编辑:UC知道 时间:2024/06/20 15:46:14

typedef struct _list_node
{
double keyVal;
struct _list_node *next;
}ListNode;

ListNode* reverseList(ListNode* head)
{
ListNode *p1, *p2 , *p3;
//链表为空,或是单结点链表直接返回头结点
if (head == NULL || head->next == NULL)
{
return head;
}
p1 = head;
p2 = head->next;
while (p2 != NULL)
{
p3 = p2->next;
p2->next = p1;
p1 = p2;
p2 = p3;
}
head->next = NULL;
head = p1;

return head;
}

方法超多!你不把你的成员函数告诉我,我咋帮你写!

反序插入