反转一个单链表。(Leetcode 206)
思路分析:
- 设置一个指针(cur),记录当前遍历位置;设置一个指针记录下一个位置pre,还可以指向当前位置,实现反转
- 确定遍历结束条件cur1=0;
- 遍历结束后,返回cur
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* reverseList(ListNode* head) {
ListNode* cur = NULL;
ListNode* pre = head;
while (pre!= NULL) {
ListNode* tmp = pre->next;
pre->next = cur;
cur = pre;
pre = tmp;
}
return cur;
}
};