题解 | #反转链表#

反转链表

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) {
		//处理空链表
		if(pHead == nullptr){
			return nullptr;
		}
		
		ListNode* cur = pHead;  	//创建当前指针指向头节点
		ListNode* pre = nullptr;	//创建首指针指向前一个节点

		while(cur != nullptr){	//当前指针指向空,退出循环

			ListNode *temp = cur -> next;	//记录当前节点的后一个节点
			cur -> next = pre;	//当前节点指向前一个节点
			pre = cur;		//前一个节点的指针后移一位
			cur = temp;		//当前节点的指针后移一位
		}
		
		return pre;
    }
};

全部评论

相关推荐

未来可期lhf:这TM是想把老师招走吗
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务