迭代
struct ListNode* reverseList(struct ListNode* head) {
struct ListNode* prev = NULL;
struct ListNode* curr = head;
while (curr) {
struct ListNode* next = curr->next;//保存下一个结点位置 ,在下一轮循环中进行移动
curr->next = prev; // 改变指针指向
//指针指向已经改变,指针进行整体位移
prev = curr; //
curr = next;
}
return prev;
}
作者:LeetCode-Solution
链接:https://leetcode-cn.com/problems/reverse-linked-list/solution/fan-zhuan-lian-biao-by-leetcode-solution-d1k2/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
注意:
指针进行整体位移时。
在中间的指针是由为关键的。要先让prev=curr;(先让后面的跟上)
然后再(curr)自己动,再让next走向下一个。