剑指offer6 从尾到头打印链表

剑指Offer(第二版)面试题6:从尾到头打印链表 (尊重劳动成果,转载请注明出处:http://blog.youkuaiyun.com/qq_25827845/article/details/71598318冷血之心的博客) 剑指Offer面试题6:从尾到头打印链表 题目:输入一个链表的头结点,从尾到头反过来打印出每个节点的值。 这题确实比较简单,第一想到的应该就是使用后进先出的堆栈来实现了,既然用到了堆栈,顺便还可以用递归来实现。 ... 阅读详情

剑指offer6 从尾到头打印链表

    输入一个链表的头结点,按照 从尾到头 的顺序返回节点的值。
    返回的结果用数组存储。

样例

输入:[2, 3, 5]
返回:[5, 3, 2]

思路:

    代码清晰易懂。

AcWing-17 C++ code:

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    vector<int> printListReversingly(ListNode* head) {
        vector<int> res;
        while(head){
            res.push_back(head->val);
            head = head -> next;
        }
        return vector<int>(res.rbegin(), res.rend());
    }
};

牛客网 C++ code:

/**
*  struct ListNode {
*        int val;
*        struct ListNode *next;
*        ListNode(int x) :
*              val(x), next(NULL) {
*        }
*  };
*/
class Solution {
public:
    vector<int> printListFromTailToHead(ListNode* head) {
        vector<int> res;
        while(head){
            res.insert(res.begin(), head->val);
            head = head->next;
        }
        return res;
    }
};

AcWing-17 python code:

 # Definition for singly-linked list.
 # class ListNode(object):
 #     def __init__(self, x):
 #         self.val = x
 #         self.next = None
 class Solution(object):
     def printListReversingly(self, head):
         """
         :type head: ListNode
         :rtype: List[int]
         """
         res = []
         while head:
             res.insert(0, head.val)
             head = head.next
         return res
量子-经典混合架构与动态QUBO建模 量子-经典混合架构与动态QUBO建模的结合,是当前量子计算与经典计算融合领域的前沿方向。通过将量子计算的并行性与经典计算的灵活性结合,该技术为解决复杂动态优化问题(如实时调度、金融投资组合优化、电力系统控制等)提供了全新的方法论。:将发电机组调度分解为QUBO(启停决策)与非QUBO(功率分配)子问题,通过3块ADMM协调;c_i(t) $随外部环境(如电力需求、市场价格)动态调整。量子-经典混合架构与动态QUBO建模的结合,标志着优化计算从。:每分钟根据市场波动调整QUBO的收益率-风险系数; 阅读详情

相关推荐

海康摄像头V3.4 升级改造VUE3

摘要:本文介绍了一个基于Vue3的海康威视摄像头组件封装方案。针对官方仅提供HTML版本SDK的问题,作者通过封装实现了Vue3组件化集成,解决了iframe/webview引入方式的弊端。组件核心功能包括实时预览、本地录像、录像下载、截图抓拍等,并优化了SDK初始化逻辑(单例模式)、定位问题修复和错误处理机制。关键技术点包括:1)SDK插件容器定位修复;2)录像下载进度监控;3)多格式图片数据处理;4)多窗口场景下的SDK实例管理。该组件可直接通过npm安装使用,提供了完善的API和事件接口,显著提升了海

LINLINLINShi的博客 113

输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。

第 2 天链表(简单) 剑指 Offer 06. 从尾到头打印链表 难度简单 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。 示例 1: 输入:head = [1,3,2] 输出:[2,3,1] 题解: /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) {

qq_46037465的博客 978

Python实战:基于PyG和Stable-Baselines3复现柔性车间调度算法(附数据集)

本文提供了一份基于图神经网络与深度强化学习的柔性车间调度实战指南。通过PyTorch Geometric构建异构图表示车间状态,并利用Stable-Baselines3中的PPO算法训练调度智能体,详细介绍了从环境建模、网络设计到训练评估的完整代码实现,帮助开发者构建可复用的工业级智能调度系统。

ansible6ops的博客 608

剑指Offer: 从尾到头打印链表

剑指Offer: 从尾到头打印链表 题目描述 输入一个链表的头结点,按照 从尾到头 的顺序返回节点的值。 返回的结果用数组存储。 样例 输入:[2, 3, 5] 返回:[5, 3, 2] 算法1 先试用栈去存储节点的数值,再放入到vector中。 时空分析 时间复杂度 O(n) , 使用了栈的数据结构需要额外开辟空间,空间复杂度 O(n) C++ 代码 /** * Definition f...

Erice_s的博客 352

STM32F407+LAN8720网口不通?别慌,手把手教你用CubeMX和HAL库搞定RMII配置与调试

本文详细介绍了STM32F407与LAN8720网口不通的全面排查与解决方法,涵盖硬件检查、CubeMX配置、PHY芯片初始化和LWIP协议栈优化。通过RMII接口配置、时钟树设置和PHY芯片调试,帮助开发者快速定位并解决网络连接问题,提升嵌入式网络开发效率。

weixin_30457551的博客 506

防雷防浪涌电路设计

通信线路或者电源线路通常会铺设到户外,一旦线路铺到户外后,就需要考虑防雷的问题了,那么怎么设计保护电路,能够防止雷电等浪涌对电路的破坏呢?

manhuami2007的博客 1万+

C++ STL之vector用法总结

介绍 vector是表示可变大小数组的序列容器。 就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。 本质讲,vector使用动态分配数组来存储它的元素。当新元素插入时候,这个数组需要被重新分配大小为了增加存储空间。其做法是,分配一个新的数组,然后...

weixin_30824599的博客 1274

Android 15网络子系统深度解析(一):ConnectivityService与网络管理框架全解析

深入剖析Android 15核心网络服务ConnectivityService的架构设计、NetworkAgent/Factory机制、网络状态管理、以及WiFi/移动网络切换的完整流程

Cheson的专栏 1749

剑指offer2之从尾到头打印链表,输入一个链表的头结点,按照 从尾到头 的顺序返回节点的值

输入一个链表的头结点,按照 从尾到头 的顺序返回节点的值。 返回的结果用数组存储。 样例 输入:[2, 3, 5] 返回:[5, 3, 2] 从后往前打印,跟栈结构的先进后出类似,使用栈来实现 /** * Definition for singly-linked list. * class ListNode { * int val; * ...

nicolelili1的专栏 729

window下迁移SVN仓库到新的windows服务器

window下迁移SVN仓库到新的windows服务器

Bertram的博客 4692

【CAD二次开发】炸开所有的嵌套块

代码】【CAD二次开发】炸开所有的嵌套块。

1513

输入一个链表的头结点,从尾到头反过来打印每个结点的值。

输入一个链表的头结点,从尾到头反过来打印每个结点的值。 链表的节点定义如下: struct ListNode{  int value;   ListNode* next; } 首先回顾一下链表的基本操作 链表的后插入: //注意,传入的参数是指向指针的指针,而不是ListNode* phead,因为代码中需要对phead的值修改,传入一级指针导致函数退出结束作用域时,phe...

asd16377869的博客 462

如何用matlab扫频法测考虑频率耦合的并网逆变器的序阻抗,如何实现?

🏆本文收录于 《全栈Bug调优(实战版)》 专栏,该专栏专注于分享我在真实项目开发中遇到的各类疑难Bug及其深层成因,并系统提供高效、可复现的解决思路和实操方案。无论你是刚入行的新手开发者,还是拥有多年项目经验的资深工程师,本专栏都将为你提供一条系统化、高质量的问题排查与优化路径,助力你加速成长,攻克技术壁垒,迈向技术价值最大化与职业发展的更高峰🚀!

**My Coding Family** 1193

剑指offer JZ6 从尾到头打印链表

使用Java的递归和栈解决从尾到头打印链表的问题。

江南赴艽野的博客 522

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

剑指offer_面试题6 : 从尾到头打印链表 ( python实现 )

从尾到头打印链表 ( python实现 ) 题目:输入一个链表的头节点,从尾到头反过来打印出每个节点的值。   其实,在这链表操作中,从头到尾打印一遍只需要一个简单的遍历便可以做到。然而在这里,遍历的顺序是从头到尾,而打印的顺序是从尾到头,这就是典型的 “先进后出”,因此,可采用 栈 或着 递归 实现。   先用 python 简单实现一个链表,如下。关于链表更多的操作 python 实现见 ...

UCASer 1298

深度学习工具包 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');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

剑指 Offer(第2版)面试题 6:从尾到头打印链表

剑指 Offer(第2版)面试题 6:从尾到头打印链表

ProgramNovice的博客 464

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

【剑指Offer】6. 从尾到头打印链表

题目描述 从尾到头反过来打印出每个结点的值。 解题思路 使用递归 要逆序打印链表 1->2->3(3,2,1),可以先逆序打印链表 2->3(3,2),最后再打印第一个节点 1。而链表 2->3 可以看成一个新的链表,要逆序打印该链表可以继续使用求解函数,也就是在求解函数中调用自己,这就是递归函数。 /** * public class ListNode { * int val; * ListNode next = null; * *

瑞新の博客:bennyrhys 1615

剑指 offer第6题-从尾到头打印链表

链表一般是从头到尾打印比较方便,本题要从尾到头打印,可以想成是后进先出,是一个栈结构。而递归就是一个栈结构。 /** * public class ListNode { * int val; * ListNode next = null; * * ListNode(int val) { * this.val = val; * ...

ritagreen123的博客 348

剑指offer面试题6——从尾到头打印链表

题目:输入一个链表的头结点,从头到尾反过来打印出每个结点的值。关键词:堆 链表结点的定义如下: struct ListNode{ int m_nkey; ListNode* m_pNext; } 思路1: 在面试的时候,我们需要询问一下面试官能不能改变链表的结构,问清楚要求之后再进行作答。这里假设是不改变链表的结构,那么我们需要遍历这个链表再进行输出,注意...

Xiao2018428的博客 231

【剑指offer题目6】从尾到头打印链表

从尾到头打印链表 1.题目要求: 输入一个链表的头结点后,从尾到头反过来打印出每个节点的值。 2.问题分析: 这个问题我们分为两点: 要有一个定义好的链表 要给链表逆序输出 3.开始干 3.1定义链表 public class ListNode { public String value; public ListNode next; public ListNode(String d...

小王的学习blog 244

《剑指offer》—— 6从尾到头打印链表

题目 输入一个链表的头结点,从尾到头反过来打印出每个节点的值。 是否可以改变链表结构?当我们打算修改数据时,最好先询问是否可以修改。 思路 1,用栈:从头到尾遍历链表,将读入的数据入栈;然后从栈顶输出。 2,递归:因为递归本质上就是一个栈结构。每访问一个节点时,先递归输出它后面的节点。(当链表非常长时,会导致函数调用层级很深,有可能导致函数调用栈溢出) 解法一:用栈实现 class Lis...

qq_36281031的博客 122

【剑指Offer记录】6-从尾到头打印链表

剑指Offer做题记录 6-从尾到头打印链表

weixin_44185089的博客 496

剑指offer JZ6 从尾到头打印链表 Java解法

这里写目录标题1. 题目描述2. 思路分析:代码1:利用Stack实现逆序输出代码2: 递归实现逆序输出(StackOverflowError)代码3: 利用Collections.reverse()方法 1. 题目描述 2. 思路分析: 一个简单的算法题,考察链表的基本使用。函数printListFromTailToHead返回的是一个ArrayList类型,那我就先new一个ArrayList类型的对象作为返回值。单向链表只能从头到尾访问,而要求从尾到头输出。逆序输出,第一个考虑到利用栈。马上想到st

自学菜鸡CyanLiuCY的博客 1603

【剑指Offer】JZ6 从尾到头打印链表

JZ6 从尾到头打印链表 描述 输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)。 如输入{1,2,3}的链表如下图: 返回一个数组为[3,2,1] 0 <= 链表长度 <= 10000 示例1 输入:{1,2,3} 返回值:[3,2,1] 示例2 输入:{67,0,24,58} 返回值:[58,24,0,67] 思路 直接遍历:从链表的头结点开始遍历,记录数据,最后反转整个数组,返回即可。 1.引入库 代码如下: struct ListNode { *

qq_45822555的博客 986

剑指offer 面试题6 从尾到头打印链表

问题:输入一个链表的头结点,从尾到头反过来打印每个节点的值。 输入:一个链表的头结点。 输出:打印从尾到头的节点的值。 思路:借用栈这一数据结构,遍历链表,将值存放在栈中。然后出栈,进行打印。 代码: 本地调试代码(迭代法) #include <iostream> //#include ".\Utilities\List.h" #include <stack>...

Black Mamba的博客 304
上一篇: 剑指offer5-替换空格
下一篇: 剑指offer7 重建二叉树
WangXu__
博客等级 码龄9年 3粉丝 156原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值