题解 | #反转链表#

反转链表

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

//要用到3根指针来保证不丢。挺麻烦。题解中的双链表法,每次从原链表里摘下来的下一个节点都挂到新链表的头部,以此实现反转,这个想法很妙。
class Solution {
public:
    ListNode* ReverseList(ListNode* pHead) {
		if(pHead->next==nullptr || pHead==nullptr)
			return pHead;//说明只有一个节点。
		ListNode*previous=pHead;
		ListNode*current=pHead->next;//从第二个节点开始。
		ListNode*next=nullptr;
		pHead->next=nullptr;
		while (current!=nullptr) {
			next=current->next;//缓存next节点,省得过会修改current->next指向后回不去了。
			current->next=previous;//修改指向
			previous=current;//递进
			current=next;//递进			
		}
		return previous;
    }
};

全部评论

相关推荐

在校生实习:我觉得平时学校肯定有各种大作业吧。包装一下写项目里。特长那块喧宾夺主了,项目肯定是大头。特长里比如:熟悉vscode,这个感觉不具有吸引性。简要介绍你会什么语言,什么工具等就行了。同26找实习,我是个超级菜鸡😭大家一起加油
点赞 评论 收藏
分享
牛舌:如果我不想去,不管对方给了多少,我一般都会说你们给得太低了。这样他们就会给下一个offer的人更高的薪资了。
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务