将链表逆序输出
采用的是头插法!
注意点:函数体内部会 为形参申请空间 。
代码:
#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; }