假定使用单链表。
简单使用 reverse 函数即可。
typedef int elemcontent_t;
typedef struct node_s {
elemcontent_t data;
struct node_s *next;
} node_t, *node_h;
node_h reverse( node_h head ) {
node_h h = NULL;
while ( head ) {
node_h next = head->next;
head->next = h;
h = head;
head = next;
}
return h;
}
// definition
node_h first;
// caller
first = reverse( first );
你就把first当成最后一个不就行了。
一队人手拉手,两头的人你说哪个是第一不都行啊?