运用迭代法进行求解 代码如下
class Solution {
public:
ListNode* reverseList(ListNode* head) {
ListNode* head1 = NULL;
ListNode* curr = head;
while(curr){
ListNode* p = curr -> next; //记录下一个元素
curr -> next = head1; //更新表头后面的元素
head1 = curr; //更新标头
curr = p; //移动到下一个元素
}
return head1;
}
};
整体思路如下图,假设初始链表为1 -> 2 -> 3 -> NULL