题解 | #反转链表#

反转链表

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;

	ListNode* temp = nullptr;
	while (cur)
	{
		temp = cur->next;
		cur->next= pre;
		pre = cur; // 指针替换
		//temp->next=pre;
		cur = temp;
		temp= nullptr;
	}
	 
	return pre;
	
    }
};

我感觉自己做题有一种脑干缺掉的感觉,有时候都怀疑是不是真的适合做程序员 ,没有一点点逻辑

在刚开始做这个题目的时候 想法 (想想笨死了)

初始想法一

1 怎末做 ? 链表转换是不是的 不断循环

2 循环找到第一个和最后一个交换。可是第二个怎办? 是不是的记一下链表数据。然后每次找的时候 首端加1 尾端减一

想法二

1 循环 然后第一个和第二个换 第二个和第三个换 以此类推。

每次循环后 交换次数减1 我期望的过程是 123 - 》 213 -》 231 -》此步骤交换次数减 1 321

唉 最后看答案 。 然后默写 换是写不出来。

全部评论
感谢lz分享,这就是大佬是怎么炼成的
点赞 回复 分享
发布于 2023-06-02 09:48 浙江
脑袋空白的一名报道,就是多练吧
点赞 回复 分享
发布于 2023-06-02 09:21 山东

相关推荐

不愿透露姓名的神秘牛友
08-09 12:05
点赞 评论 收藏
分享
点赞 评论 收藏
分享
学一下吧现在太菜了:和简历没关系,你是清华的他就要了。多投投就行了
点赞 评论 收藏
分享
一表renzha:手写数字识别就是一个作业而已
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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