题解 | #反转链表#

反转链表

http://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca

反转链表 1.反转链表,我们用到三个指针来动态地进行移动 分别是,前面的指针(pre),当前的指针(cur),后面的指针(nex) 移动的规律,因为每次都需要向后移动,所以需要将指针cur->next保存下来 然后将cur->next指针不再指向后面的指针,而是指向前面的指针。故而 cur->next = pre; 再接着,因为要保证循环的正常,所以需要前面的指针pre指向后面的一个元素,即pre=cur; 同时当前的元素也需要指向后面第一个元素。 完整的代码

/*struct ListNode{
   int val;
   struct ListNode*next;
   ListNode(int x):val(x),next(NULL)
   {
}
};*/
class solution
{
public:
ListNode*reverseList(ListNode*pHead)
{
ListNode*pre = NULL;
ListNOde*cur = pHead;
ListNode*nex = NULL;
while(cur)
{
nex = cur->next;
cur->next = pre;
pre = cur;
cur = nex;
}
return pre;
}
全部评论

相关推荐

字节 飞书绩效团队 (n+2) * 15 + 1k * 12 + 1w
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务