题解 | #反转链表#

反转链表

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

/*
struct ListNode {
int val;
struct ListNode next;
ListNode(int x) :
val(x), next(NULL) {
}
};
/
class Solution {
public:
ListNode* ReverseList(ListNode* pHead) {
//顺序遍历原链表,将当前结点用头插法接到新结点链表
ListNode * newHead = nullptr;
ListNode * cur = nullptr;
while(pHead != nullptr)
{
cur = pHead;
pHead = pHead->next; //让原头指针指向下一个结点,相当于从原链表上的删除当前结点
cur->next = newHead; //将当前结点接到新头结点
newHead = cur;
}
return newHead;
}
};
//注意:这里的所说的头结点是一个指向第一个结点的指针,不是教材中所说的数据为空、指针域总是指向第一个有效数据结点的、便于操作的那个“头结点”。

全部评论

相关推荐

点赞 评论 收藏
分享
09-13 17:25
亲切的00后在笔试:我也遇到了,所以我早他一步查看图片
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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