将链表逆序输出
采用的是头插法!
注意点:函数体内部会 为形参申请空间 。
代码:
#include <iostream>
using namespace std;
typedef struct node{
int value;
struct node *next;
}Node;
void inverse(Node **headin)
{
Node *q = *headin, *p, *head2;
head2 = p = q;
while (q->next != NULL)
{
q= q->next;
p->next=q->next;
q->next = head2;
head2 = q;
q = p;
}
*headin = head2; //此处不能使用headin = &head2 ;
}
int main()
{
Node *head = new Node;
head->value = 1;
head->next = new Node;
head->next->value = 2;
head->next->next = NULL;
inverse(&head);
while (head->next != NULL)
{
cout << head->value << endl;
head = head->next;
}
cout << head->value << endl;
return 0;
}