链表逆置(linux下面中文输入法不好使,勿见怪) 一种方法:每次从原链表取出一个节点,逆序建立里一个新的链表 //逆置之后没有头节点 pNode Reverse(pNode head) { pNode ptr = (pNode)malloc(sizeof(Node)),p = head->next, q = p->next; ptr->next = NULL; while(q) { pNode r = p; r->next = ptr->next; ptr->next = r; p = q; q = q->next; } p->next = ptr->next; ptr->next = p; return ptr; } 令一种方法:直接在原来的基础上进行倒序。 //逆置之后没有头节点 pNode Reverse(pNode head) { pNode p,q,r; p = head->next; q = p->next; while(q) { r = q->next; q->next = p; p = q; q = r; } head = head->next; head->next = NULL; head = p; return head; }