牛客题霸 反转链表 C++题解/答案

题目描述

输入一个链表,反转链表后,输出新链表的表头。
示例1
输入
复制
{1,2,3}
返回值
复制
{3,2,1}

题解:

如果用偷懒的方法,可以用vector来存链表内容,然后来个翻转(vector自带)即可
但是,我们不可能光靠这种方法,来讲一下正解
在这里插入图片描述
通过图我们可以看出,其实翻转链表,也就是将指向翻转
所以我们需要一个链表s作为存新数据(也就是翻转后的数据)
还需要一个q作为中间变量
链表p为题目所给的pHead
步骤:
先用q存p的下一个节点的地址,这样是因为后续p有其他操作,如果不提前保存会丢失
然后将p->next=s,将当前节点与链表中断,并指向s
然后将s=p,
这两步操作可以理解为,将当前节点从原链表中取出,并将下一个节点指向当前节点(相当于调转了箭头方向)
从原本的
p —> p->next
变成了
p->next ---->p
然后这个是存在s内的
最后将p=q,相当于原本暂存的东西还给p,使得p的后续没有发生改变

代码:

/*
struct ListNode {int val;struct ListNode *next;ListNode(int x) :val(x), next(NULL) {}
};*/
class Solution {
public:ListNode* ReverseList(ListNode* pHead) {if(pHead==NULL)return NULL;ListNode * p=pHead;ListNode * s=NULL;ListNode * q=NULL;while(p!=NULL){q=p->next;//先用q来记录下一个节点的地址p->next=s;//让当前节点与链表中断,并指向前一个节点ss=p;//s指向当前节点p=q;//p指向q,而q存的是下一个节点的地址}return s;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/318998.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【.NET Core项目实战-统一认证平台】第五章 网关篇-自定义缓存Redis

上篇文章【.NET Core项目实战-统一认证平台】第四章 网关篇-数据库存储配置(2)我们介绍了2种网关配置信息更新的方法和扩展Mysql存储,本篇我们将介绍如何使用Redis来实现网关的所有缓存功能,用到的文档及源码将会在GitHub上开源&a…

广州.net俱乐部12月份ABP框架活动场地征集、志愿者征集、合作讲师\副讲师征集...

大家好&#xff0c;我在<被低估的.net(上) - 微软MonkeyFest 2018广州分享会活动回顾>一文中提到&#xff0c;我将在12月份搞一场ABP框架活动&#xff0c;现向大家征集活动场地、志愿者、合作讲师\副讲师。活动课程标题是&#xff1a;如何用ABP框架快速完成项目这是内容大…

CF1446F-Line Distance【计算几何,树状数组,二分】

正题 题目链接:https://www.luogu.com.cn/problem/CF1446F 题目大意 给出nnn个点&#xff0c;求所有点对构成的直线中与原点距离第kkk小的距离 2≤n≤105,1≤k≤n(n−1)22\leq n\leq 10^5,1\leq k\leq \frac{n(n-1)}{2}2≤n≤105,1≤k≤2n(n−1)​ 解题思路 二分还是挺显然的…

为什么是容器,Docker和Kubernetes?

如果你是一名IT行业的从业者&#xff0c;还没有听说过以上3个词的任何一个&#xff0c;抱歉&#xff0c;你可以改行了&#xff1b;如果你是一名技术人员&#xff0c;无论你是程序员&#xff0c;测试人员&#xff0c;运维工程师还是时髦的DevOps工程师&#xff0c;你还没有运行过…

一份来自28岁.NET老程序员的自白

写在前面很幸运&#xff0c;28岁的我头发还没有掉光&#xff0c;更幸运的是28岁的我开始了博客园的写作生活&#xff01;这样的技术分享经历让我拓展了自己的朋友圈&#xff01;有幸结识了像张善友张队&#xff08;连续13年的微软MVP&#xff09;&#xff0c;大石头(NewLife团队…

谈谈.NET Core中基于Generic Host来实现后台任务

前言很多时候&#xff0c;后台任务对我们来说是一个利器&#xff0c;帮我们在后面处理了成千上万的事情。在.NET Framework时代&#xff0c;我们可能比较多的就是一个项目&#xff0c;会有一到多个对应的Windows服务&#xff0c;这些Windows服务就可以当作是我们所说的后台任务…

2018 KubeCon + CloudNativeCon完美落幕,行云献力

2018年11月13-15日&#xff0c;由云原生计算基金会&#xff08;CNCF&#xff09;组织的KubeConCloudNativeCon首次登陆中国。经过了三天的技术交流和展示&#xff0c;大会随着15日下午最后一个议程的结束而完美落幕。作为云原生领域全球最大的峰会&#xff0c;KubeConCloudNati…

魔方Newlife.Cube权限系统的使用及模版覆盖详解

讲人&#xff1a;大石头时间&#xff1a;2018-11-14 晚上20&#xff1a;00地点&#xff1a;钉钉群&#xff08;组织代码BKMV7685&#xff09;QQ群&#xff1a;1600800内容&#xff1a;魔方Newlife.Cube权限系统的使用及模版覆盖详解准备源码地址: https://github.com/NewLifeX/…

我在微软做研发 | 亚洲创新的科研之力

丹棱君有话说&#xff1a;在庆祝微软亚洲研究院成立 20 周年之际&#xff0c;微软亚洲研究院的几位科学家向我们讲述了在这里&#xff0c;如何以科研热情推动了技术创新。走进微软亚洲研究院的办公园区&#xff0c;便会被这里安静的研究氛围所包围。在当今越来越多追求速度、提…

调试.NET CORE代码

前言core也用了很长一段时间了&#xff0c;发现很多小伙伴不知道如何调试core的代码。可想而知&#xff0c;以前使用mvc的时候&#xff0c;不需要发布代码&#xff0c;直接iis地址指向项目源码&#xff0c;然后附加到进程w3wp.exe就可以调试了。在core的项目里面已经不能这样玩…

牛客题霸 [二叉树中是否存在节点和为指定值的路径] C++题解/答案

牛客题霸 [二叉树中是否存在节点和为指定值的路径] C题解/答案 题目描述 给定一个二叉树和一个值\ sum sum&#xff0c;判断是否有从根节点到叶子节点的节点值之和等于\ sum sum 的路径&#xff0c; 例如&#xff1a; 给出如下的二叉树&#xff0c;\ sum22 sum22&#xff0c;…

从头开始学eShopOnContainers——Visual Studio 2017环境配置

一、安装和配置Docker环境1、安装Docker CE for Windows从官方网站下载并安装&#xff0c;https://docs.docker.com/docker-for-windows/install/。默认情况下Docker for Windows使用Hyper-V运行Linux VM。 如果您没有安装/启用Hyper-V&#xff0c;它将被安装&#xff0c;您可能…

ASP.NET Core 生成验证码

点击蓝字关注我使用验证码保护网站免受垃圾信息的选择有很多&#xff0c;比如Google ReCaptcha和captcha.com。这两者都可以整合到ASP.NET Core应用中去。然而&#xff0c;如果你出于某些原因&#xff0c;仍然希望自己写验证码&#xff0c;例如你下网站需要在中国大陆使用&…

【.NET Core项目实战-统一认证平台】第六章 网关篇-自定义客户端授权

上篇文章【.NET Core项目实战-统一认证平台】第五章 网关篇-自定义缓存Redis 我们介绍了网关使用Redis进行缓存&#xff0c;并介绍了如何进行缓存实现&#xff0c;缓存信息清理接口的使用。本篇我们将介绍如何实现网关自定义客户端授权&#xff0c;实现可以为不同的接入客户端设…

如何用ABP框架快速完成项目(面向项目交付编程面向客户编程篇) - 广州.net微软技术俱乐部12月份活动报名帖...

这是广州.net微软技术俱乐部12月份活动报名帖。此帖会持续更新。活动课程标题是&#xff1a;如何用ABP框架快速完成项目(面向项目交付编程面向客户编程篇)这是内容大纲&#xff1a;ABP框架简介&#xff08;这里会聊聊.net真的不如JAVA吗&#xff1f;&#xff09;快的定义!用ABP…

.Net Core微服务系列--开篇

得原来有个项目是用wcf做的分布式&#xff0c;不仅横向根据业务拆分了&#xff0c;纵向把业务处理、数据访问等也拆分了成不同的服务&#xff0c;这个是当时公司的产品我也只是一个小小的开发人员所以就不做太多的评论&#xff0c;只是不得不吐槽下调试真的太麻烦。后来&#x…

牛客题霸 [ 树的直径] C++题解/答案

牛客题霸 [ 树的直径] C题解/答案 题目描述 给定一棵树&#xff0c;求出这棵树的直径&#xff0c;即两个节点距离的最大值。 题解&#xff1a; 不知道大家听没听过一个结论&#xff1a; 树的直径可以通过两边dfs找到 步骤&#xff1a; 1.从任意一点进行dfs&#xff0c;然后…

被低估的.net(中) - 广州.net俱乐部2019年纲领

这是被低估的.net系列的中篇。上篇在这里&#xff1a;被低估的.net(上) - 微软MonkeyFest 2018广州分享会活动回顾中篇本来不是这样的&#xff0c;中篇的草稿大纲其实在写上篇之前就写好了&#xff0c;嗯&#xff0c;当时给张队长看过了。然而却因为被.net 粉丝的热情震惊和感动…

[译]RabbitMQ教程C#版 - 远程过程调用(RPC)

先决条件本教程假定 RabbitMQ 已经安装&#xff0c;并运行在localhost标准端口&#xff08;5672&#xff09;。如果你使用不同的主机、端口或证书&#xff0c;则需要调整连接设置。从哪里获得帮助如果您在阅读本教程时遇到困难&#xff0c;可以通过邮件列表 联系我们。在第 教程…

ML.NET速览

什么是ML.NET&#xff1f;ML.NET是由微软创建&#xff0c;为.NET开发者准备的开源机器学习框架。它是跨平台的&#xff0c;可以在macOS&#xff0c;Linux及Windows上运行。机器学习管道ML.NET通过管道(pipeline)方式组合机器学习过程。整个管道分为以下四个部分&#xff1a;Loa…