Date:2012-10-15
解决方案:
typedef struct node{ char *data; struct node *next; }node_t; node_t *reverse(node_t *head) { node_t *q = 0, *t; for (; head; t = head->next, head->next = q, q = head, head = t); return q; }
测试:
//test int main(int argc, const char *argv[]) { node_t d = {"d", 0}, c = {"c", &d}, b = {"b", &c}, a = {"a", &b}, *t = 0; for (t = &a; t; t = t->next)//print list printf("%s\n", t->data); node_t *s = reverse(&a); for (t = s; t; t = t->next)//print list printf("%s\n", t->data); return 0; }