struct ListNode* ReverseList(struct ListNode* pHead ) {
struct ListNode* p = NULL;
struct ListNode* q = pHead;
struct ListNode* r;
while(q != NULL){
r = q->next; //这一步必须在前面,以防止断链
q->next = p; //从旧链表拆一个结点下来指向新链表的链头结点
p = q; //新链表的链头指针指向新插入的结点q
q = r; //指针返回旧链表,准备拆下一个结点
}
return p; //p指向新链表的链头结点
}

京公网安备 11010502036488号