题解 | #反转链表#

反转链表

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;
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-08 10:39
一个证都没 我能填什么
程序员小白条:别人有,你为什么没有,还是这个道理,社会就是比较,竞争,淘汰,你要安逸,那么就要做好淘汰的准备
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务