题解 | #反转链表#

反转链表

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

相关推荐

10-15 10:23
门头沟学院 Java
牛可乐的头像真牛:赶紧举报,这公司绝对是诈骗的,等你签约后工作一两个月后根据合同漏洞把你开除,并且要求你赔偿3w培训费,996是为了提前筛选心甘情愿签下合同容易受骗的群体,纯粹面向校招生精心设计的骗局
你见过哪些工贼行为
点赞 评论 收藏
分享
10-29 18:20
济南大学 Java
用微笑面对困难:他不是人事吗,怎么净特么不干人事
点赞 评论 收藏
分享
12-03 15:20
武汉大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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