题解 | #反转链表#

反转链表

https://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*j=pHead;
		int size=0;
		while(j!=nullptr)
		{
			size++;
			j=j->next;
		}
		if(size<=1)
		{
			return pHead;
		}
		if(size==2)
		{
			ListNode*p=pHead->next;
			pHead->next=nullptr;
			p->next=pHead;
			return p;
		}
		ListNode*p=pHead;
		ListNode*q=p->next;
		ListNode*s=q->next;
		if(p==pHead)
		{
			// p->next=NULL;
			p->next=nullptr;
		}
		q->next=p;
		p=q;
		while(s)
		{
			q=s;
			s=q->next;
			q->next=p;
			p=q;
		}
	return p;
    }
};

全部评论

相关推荐

不知道怎么取名字_:看来现在卷的,这种单位都开始提高要求了
点赞 评论 收藏
分享
04-17 18:34
中山大学 C++
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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