思路
1. 使用三个指针,一个是新的链表头newHead,一个是遍历原链表的cur,newHead是cur的前一个节点
2. cur不断向前,并把cur->next 指向newHead,逐个反转
3. 第三个指针,tmp,用于记录原来的遍历方向,即原cur->next
代码
class Solution { public: ListNode* reverseList(ListNode* head) { ListNode *cur, *newHead; cur = head; newHead = NULL; while (cur) { ListNode *tmp = cur->next; cur->next = newHead; newHead = cur; cur = tmp; } return newHead; } };