/*
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 0;
ListNode *s=new ListNode(0);
ListNode* p=pHead->next;
ListNode* q=p;
pHead->next=NULL;
s->next=pHead;
while(q){
p=q;
q=p->next;
p->next=s->next;
s->next=p;
}
return s->next;
}
};
相关推荐
图像去雾新思路:手把手教你复现DEA-Net中的“细节增强卷积”与PyTorch实现
本文详细解析了DEA-Net中的'细节增强卷积'(DEConv)与PyTorch实现,通过多分支差分卷积和重参数化技术,显著提升单图像去雾效果。文章从数学原理到代码实现,手把手指导复现这一创新架构,帮助开发者在保持轻量化的同时实现41dB以上的PSNR指标,适用于自动驾驶、遥感监测等关键领域。
剑指offer24:反转链表 python
剑指offer24:反转链表 python题目描述解法1. 使用队列2. 双指针3.递归思考与感想 题目描述 解法 1. 使用队列 先遍历整个链表并用一个队列存储(append)node,然后使用pop的性质,先进去的后出来,更新到最后一个节点的next上。 class Solution: def reverseList(self, head: ListNode) -> ListNode: if head is None: return None
Nginx源码安装和基础配置
Nginx简介 nginx: 世界第二大web服务器软件,以高并发、低消耗著称,源自于俄罗斯,创建者 Igor(伊戈尔),2004年开源,最早以代理服务器的身份出现,2015成立nginx公司,2019年以6.7亿被F5 Networks公司收购。 代理服务器: 正向:squid 反向: squid:最古老的代理服务器 LVS: 优点: 1.抗负载能力强、是工作在网络4层之上仅作分发之用 2.配置性比较低,这是一个缺点也是一个优点,简单不易出错 3.工作稳定,抗负载能力很强,有完整的双机热备方案
剑指offer:面试题16——反转链表
剑指offer:面试题16——反转链表 题目:输入一个链表,反转链表后,输出新链表的表头。 思路: 第一种:借助栈 第二种:为了防止链表断裂,将当前节点、当前节点的前一个和后一个节点都保存下来 /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };...
MAX3232芯片引脚功能详解与外围电路设计避坑指南(从电荷泵到静电防护)
本文详细解析了MAX3232芯片的引脚功能与外围电路设计,重点介绍了其电荷泵架构和RS232通信接口的应用。通过实际案例和参数对比,提供了电路设计中的常见问题解决方案和静电防护建议,帮助工程师优化工业控制与嵌入式系统中的通信可靠性。
MATLAB计算各种复合干热指数,如SDHI、DHMI等
MATLAB编程实现各种复合干热指数
剑指Offer第十五题:反转链表
剑指Offer第十五题:反转链表 输入一个链表,反转链表后,输出新链表的表头。 头插法 初始化: 头结点pre = new ListNode(head); 临时结点next,指向head的下一个结点 遍历链表,循环停止条件next == null 2.1 先让head指向next结点 head = next 2.2 先用临时结点存储下一个结点next = next.next 2.3 进行反转,修改head.next,让head指向pre: head.next = pre; 2.4 更新pr
uniapp(全端兼容) - 最新详细实现支付键盘功能组件,从底部弹出数字键盘输入支付密码进行付款交互效果,自定义支付密码键盘仿微信、支付宝支付键盘,1~9密码数字键盘,电商支付(详细示例代码复制运行
uniapp,微信小程序,自定义数字键盘,输入支付密码的键盘组件,uniapp小程序如何实现从底部弹出输入支付密码自定义键盘功能,uniapp小程序密码支付键盘组件插件,自定义数字键盘输入页面,怎么封装底部弹窗自定义数字键盘用于输入支付密码,uniapp小程序仿类似电商支付密码输入模态框,uniapp微信小程序平台实现自定义支付密码键盘,uniapp 密码支付,数字键盘,安全键盘,交易键盘,交易密码,交易密码输入框,uniapp自定义支付键盘: uniapp自定义支付键盘,uniapp小程序端实现键盘输入支
剑指Offer15:反转链表
剑指Offe15:反转链表 1.题目 输入一个链表,反转链表后,输出新链表的表头。 2.思路 借助四个指针,循环时用三个,最后输出指针用一个。 3.代码 /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solution { ...
Unity之如何接入NPOI 快速读取Excel
NPOI是指构建在POI 3.x版本之上的一个程序,NPOI可以在没有安装Office的情况下对Word或Excel文档进行读写操作。 NPOI是一个开源的C#读写Excel、WORD等微软OLE2组件文档的项目
pandas教程:2012 Federal Election Commission Database 2012联邦选举委员会数据库
里面包含了支持者的名字,职业和雇主,地址,赞助金额。我们可以已经能想到如何切割、整理数据,来提取赞助者的统计数据,或提取宣传活动的模式,这里我们展示一些不同的分析方法。可以看到有些职业是同一种工作类型,指代的是同一个东西。这两个连续操作是分别独立执行的,一个结束后,另一个才开始。上,这里我是把数据集压缩成了ZIP格式,解压后能正常导入)。我觉得也有必要好好了解一下,这个网站做了很好的讲解,),所以我们最好添加这样的信息。这样的情况,即把两个索引操作连在一起。,发现映射关系被正常执行了,所以这里的。
剑指Offer(十五):反转链表
剑指Offer(十五):反转链表 搜索微信公众号:‘AI-ming3526’或者’计算机视觉这件小事’ 获取更多算法、机器学习干货 csdn:https://blog.youkuaiyun.com/baidu_31657889/ github:https://github.com/aimi-cn/AILearners 一、引子 这个系列是我在牛客网上刷《剑指Offer》的刷题笔记,旨在提升下自己的算法能力...
FAST-LIVO2 源码精读(五):IMU 运动模型、离散传播与去畸变原理
本文是「FAST-LIVO2 激光-惯性-视觉里程计源码精读」专栏第五篇,数学基础篇章(第 4–7 篇)的第二篇。上一篇在 SO(3) 流形上建立了姿态表示与右扰动模型;本篇聚焦 IMU 预积分的核心问题:一帧激光扫描横跨约 100 ms,帧内每一个点的采集时刻各不相同,如何利用 200 Hz 的 IMU 量测将全帧点云统一对齐到帧末时刻?答案完整封装在(587 行)的函数中,本篇逐段拆解其四阶段逻辑,并推导协方差矩阵随误差状态转移矩阵F_x逐帧演化的物理含义。
(C++)剑指offer-15:反转链表(代码的鲁棒性)
剑指offer-15:反转链表 反转即将链表的所有节点的next指针指向前驱节点,单链表需要额外的指针保存前驱节点,同时改变当前节点的next指针前,需保存其后继节点。 由于只遍历一次链表,时间复杂度为O(n)。 具体代码如下: class Solution { public: ListNode* ReverseList(ListNode* pHead) { ListNod...
VB摄像头监控
该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制
IDEA的使用指南
IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.
剑指offer JZ15:反转链表
剑指offer JZ15:反转链表 问题 输入一个链表,反转链表后,输出新链表的表头。 思路 非常基础的链表题,几乎所有学习链表的程序员都会在一开始学习这个算法。 大思路就是运用三个变量存储上一个,现在和下一个链表,然后将现在的next指向上一个链表,在更新三个变量。 唯一需要注意的是,当while循环结束时(也即是curnode到达了链表尾),此时curnode.next并没有被指向lastnode,需要在后面加上。 代码及解释 class Solution: # 返回ListNode d
深度学习工具包 DeepLearningToolbox
深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[](https://bitdeli.com/free "Bitdeli Badge")
《剑指offer》刷题——【代码的鲁棒性】面试题24:反转链表(java实现)
《剑指offer》刷题——【代码的鲁棒性】面试题24:反转链表(java实现)一、题目描述二、题目分析三、代码实现方法一:非递归方法二:递归 一、题目描述 定义一个函数,输入链表的头结点,反转该链表并输出反转后链表的头结点 二、题目分析 需要3个指针: 指向当前遍历的节点 指向前一节点 指向后一节点 三、代码实现 方法一:非递归 /* public class ListNode { ...
假人有限元模型
假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用
剑指offer 66道:反转链表
剑指offer 66道-python+JavaScript反转链表思路github题目代码(python)github题目代码(JavaScript) 反转链表 时间限制:1秒 空间限制:32768K 热度指数:454860 题目描述 输入一个链表,反转链表后,输出新链表的表头。 思路 分别用python和javascript实现,均实现三种方法:三个指针遍历、尾插法、递归。 github pyt...
[剑指Offer]:反转链表
题目描述: 反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 方法一: 每次将cur后的节点翻至头节点前 void SListReverse(SList * plist){ assert(plist->_head); SListNode * tmp = ...
剑指offer:反转链表
题目描述 输入一个链表,反转链表后,输出链表的所有元素。 1.非递归 /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solution { public:
剑指offer:24.反转链表
剑指offer:24.反转链表 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 解析(c++): 双指针 时间复杂度:o(n) 空间复杂度:o(n) class Solution { public: ListNode* reverseList(ListNode* head) { if (head
剑指Offer: 反转链表
剑指Offer: 反转链表 题目描述 定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。 样例 输入:1->2->3->4->5->NULL 输出:5->4->3->2->1->NULL 算法1 (链表操作,迭代) O(n) 翻转即将所有节点的next指针指向前驱节点。 由于是单链表,我们只有一个next域,在...
剑指offer24:反转链表
剑指offer24:反转链表1、题目2、代码2.1、方案1:迭代(双指针)2.2、方案2:递归(先传递再回溯)3、随笔3.1、测试代码 1、题目 剑指offer24:反转链表 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 2、代码 2.1、方案1:迭代(双指针) 原链表为 1->2->3->4
剑指Offer:反转链表
剑指Offer:反转链表 来源:力扣(LeetCode) 题目链接 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 **题目:**定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 限制: 0 <= 节点个数 <= 5000 思路:利用栈的先进后出的特性,将链表中的值取出并存入栈中,接着
剑指Offer:反转链表
剑指Offer:反转链表 由于链表具有天然的递归结构,反转链表其实很容易想到递归的方式。这里暂不说了。说一下非递归的方式 非递归的方式 由于链表的next维持关系链的关键。反转的过程就需要用额外的指针指向当前节点的前一节点和后一节点,不然的话就会发生断链了。 图示: 具体步骤伪代码可为: 1. pNext指向当前节点的next以保持链 pNext = curr...
《剑指Offer》24:反转链表
定义一个函数,输入一个链表的头节点,反转链表并输出反转后链表的头节点。//防止最后元素死循环而造成的OOM。方法二:利用栈先进后出的性质进行反转链表。方法一:使用三个指针进行边移动边逆。//利用栈的先进后出性质。
剑指offer:15.反转链表
https://github.com/PhillipHuang2017/SwordOffer 15.反转链表 题目描述 输入一个链表,反转链表后,输出新链表的表头。 解题思路 思路一,一路向下,两个指针,依次遍历结点,先保存下一个结点地址,然后将当前结点的指针反转。很简单,看代码就懂了,但是一定要注意避免出现断链(即忘了先保存下一个结点地址)和环路(即忘记将第一个结点的next改为NULL...
506



被折叠的 条评论
为什么被折叠?



