题解 | #反转链表#

反转链表

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

相关推荐

06-26 17:24
已编辑
宁波大学 golang
迷失西雅图:别给,纯kpi,别问我为什么知道
点赞 评论 收藏
分享
Lorn的意义:你这种岗位在中国现在要么牛马天天加班,要么关系户进去好吃好喝,8年时间,真的天翻地覆了,对于资本来说你就说一头体力更好的牛马,哎,退伍没有包分配你真的亏了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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