反转链表最常用的就是双指针法了
图解:
首先,创建两个指针,begin和end,一个begin为空,一个end指向链表开头1。
然后begin=end;end往后移动指向像一个节点,如下图
重复以上步骤,直到end为空。
代码如下
/** * 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* begin,*end; begin=NULL; end=head; while(end!=NULL) { ListNode* temp=end->next; end->next=begin; begin=end; end=temp; } return begin; } };
标签:begin,ListNode,反转,next,链表,end,NULL From: https://www.cnblogs.com/HaveFunnyAnyone/p/17454091.html