题解 | #反转链表#

反转链表

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

//将链表节点摘下来挂在链表头部的解法。
class Solution {
public:

    ListNode* ReverseList(ListNode* head) {
        ListNode* p=new ListNode(-1);
		if(head==nullptr || head->next==nullptr)
			return head;//如果只有一个节点或没有节点
		p->next=head;
		ListNode* current=head->next;
		ListNode*next=current->next;
		while(current!=nullptr)
		{
			next=current->next;//缓存一下next节点
			current->next=p->next;
			p->next=current;//通过这两步把current插到头部。
			current=next;//递进
		}
		head->next=nullptr;//head的next并不应该有后续,否则会形成环。
		return p->next;
    }
};

全部评论

相关推荐

求面试求offer啊啊啊啊:把华北改为华南再试一试,应该就没啥问题了。改完可能都不用投,别人主动联系了。
点赞 评论 收藏
分享
03-31 16:42
已编辑
郑州西亚斯学院 后端
Java抽象带篮子:你简历少了几个模块看上去就感觉信息很少,简历怎么写可以看看我发的帖子
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务