Leetcode之重排链表

Java实现 LeetCode 143 重排链表 143. 重排链表 给定一个单链表 L:L0→L1→…→Ln-1→Ln , 将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→… 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例 1: 给定链表 1->2->3->4, 重新排列为 1->4->2->3. 示例 2: 给定链表 1->2->3->4->5... 阅读详情


前言

题目如下:
在这里插入图片描述重排链表(点我)

一、线性表

因为链表不能下标访问元素,所以我们不能随机访问链表中的元素,因此我们采用数组来存储链表中的每一个元素。利用线性表可以随机访问元素的特点,可以轻松解决该题目。
具体代码如下:

void reorderList(struct ListNode* head) {
    if (head == NULL) {
        return;
    }
    struct ListNode* vec[40001];
    struct ListNode* node = head;
    int n = 0;
    while (node != NULL)//遍历将链表每个节点存储于数组vec中 
    {
        vec[n++] = node;
        node = node->next;
    }
    int i = 0, j = n - 1;
    while (i < j)//按照题目所述下标访问规律进行链接
     {
        vec[i]->next = vec[j];
        i++;
        if (i == j)//当i==j时退出循环
        {
            break;
        }
        vec[j]->next = vec[i];
        j--;
    }
    vec[i]->next = NULL;
}
代码来源:leetcode官方题解

空间复杂度0(n) 时间复杂度0(1)
这种方法还是非常好想的

二、寻找链表中点 + 链表逆序 + 合并链表

想进一步优化,必须要熟悉快慢指针找中间节点,链表逆序等,下面有这些题目的链接供大家参考:
链表的中间节点
反转链表
具体步骤:
1.找到原链表的中间节点
2. 将中间节点的后半部分反转
3. 按循序将二个链表交叉链接
过程如动图:
在这里插入图片描述具体代码如下:

struct ListNode* getMid(struct ListNode* head)//获取中间节点
{
    struct ListNode* slow = head;
    struct ListNode* fast = head;
    while (fast && fast->next)
    {
        fast = fast->next->next;
        slow = slow->next;
    }
    return slow;
}
struct ListNode* Swap(struct ListNode* head)//逆序
{
    struct ListNode* prev = NULL;
    struct ListNode* cur = head;
    struct ListNode* next = head->next;
    while (cur)
    {
        cur->next = prev;
        prev = cur;
        cur = next;
        if (next != NULL)
        {
            next = next->next;
        }
    }
    return prev;
}
void reorderList(struct ListNode* head) {
    if (head == NULL)
    {
        return;
    }
    if(head->next==NULL)
    {
        return;
    }
    struct ListNode* mid = getMid(head);
    struct ListNode* cur = head;
    struct ListNode* prev = head;
    while (cur != mid)
    {
        prev = cur;
        cur = cur->next;
    }
    prev->next = NULL;
    struct ListNode* p2 = Swap(mid);
    struct ListNode* p1 = head;
    struct ListNode* next1 = p1;
    struct ListNode* next2 = p2;
    cur = head;
    int n = 1;
    while (next1 != NULL)
    {
        if (n % 2 != 0)
        {
            next1 = cur->next;
            cur->next = next2;
            cur = cur->next;
        }
        else
        {
            next2 = cur->next;
            cur->next = next1;
            cur = cur->next;
        }
        n++;
    }
}

总结

以上就是重组链表的全部内容希望对大家有帮助!

143. 重排链表 快慢指针找中点链表反转两链表合并交叉不仅是基础链表题的巩固,还考察了代码的鲁棒性和边界处理能力。理解透彻之后,对后续做复杂链表题目(比如:环形链表、复制随机指针链表等)也有很大帮助。希望这篇文章对你有所帮助!💪。 阅读详情

相关推荐

LeetCode143——重排链表

我的LeetCode代码仓:https://github.com/617076674/LeetCode 原题链接:https://leetcode-cn.com/problems/reorder-list/description/ 题目描述: 知识点:双指针、链表 思路:用快慢双指针遍历链表区分链表的前半部分和后半部分 借鉴LeetCode141——环形链表和LeetCode142—...

清风阁 922

【刷题之路Ⅱ】LeetCode 143. 重排链表

既然链表不支持随机访问而顺序表支持随机访问,那我们就可以想办法先将链表中的节点放到一个节点数组中,然后再按题目给的顺序访问各个节点然后连接成一个新的链表即可。所哟们可以先找到链表的中间节点,然后将中间节点后的链表(不包括中间节点)反转,再让原链表在中间节点处断开,然后再交叉和并这两条链表即可。空间复杂度:O(n),我们需要额外的n个空间来存储指向各个节点的指针。不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。时间复杂度:O(n),n为链表的长度。时间复杂度:O(n),n为链表的长度。

kk702392702的博客 1757

【中等】力扣算法题解析LeetCode143:重排链表

本文解决单链表重排问题,要求将链表节点按首尾交替顺序重新排列。方法分为三步: 寻找中点:使用快慢指针将链表平分为前后两部分; 反转后半部分:通过迭代法反转后半链表; 合并链表:交替连接前半部分和反转后的后半部分节点。 Java实现中通过断开原链表、反转及合并操作,确保空间复杂度为O(1),时间复杂度O(n)。适用于链表长度≤5×10⁴的情况,代码已通过力扣测试案例。 关键词:单链表重排、快慢指针、链表反转、交替合并

ylumwd的博客 406

面试经典算法系列之链表6 -- 重排链表

公众号:阿Q技术站。

qq_44630255的博客 1542

QT插件学习系列(一) 初识QtPlugin

QT插件学习系列(一) 初识QtPlugin 1、 概述 为什么我们要学习插件化,其和 windows 导出 dll 有什么区别呢? 导出的动态库如果缺失,程序不能运行。但插件可以。 同一套代码,即可分别在 windows 下和 linux 下生成插件。 QT 本身提供两种插件支持,一种称为高级 API,一种称为低级 API。 高级API的作用是扩展 QT 程序本身,需要子类化 QT 提供的插件基类,例如现有的 QTSqlDriver,因此你可也以编写自己的 QTStyle 扩展 QT。 低级

L_Andy的专栏 3113

flink新版本无bat启动文件的解决办法

flink

6 4932

【Leetcode——重排链表】

LeetCode——重排链表

如果需要沟通,可添加微信公众号找我免费答疑 2434

TransUnet官方代码训练自己数据集(彩色RGB3通道图像的分割)

官方代码:https://github.com/Beckschen/TransUNet 目的:训练5个类别的汽车部件分割任务(测试在另一篇博客中) 实现效果: 1. github下载代码,并解压。 项目里的文件可能跟你下载的不一样,不急后面会讲到! 2. 配置数据集(尽最大努力还原官方数据集的格式)。 通常自己手上的数据集分images和labels文件夹,分别存放着原始图像和对应的mask图像,如下图所示; mask图像中的像素有0,1,2,3,4 分别代表背景,车身,轮子,车灯,窗户,一共五个

qq_37652891的博客 5万+

代码随想录——重排链表

刷题总结

qq_39473176的博客 1069

Java后端开发实战:手把手教你用e签宝API搞定电子合同签署(附完整代码)

本文详细解析了Java后端开发中如何通过e签宝API实现电子合同签署的全流程,包括环境配置、核心架构设计、Token管理、签署流程实现及回调处理等关键环节。通过完整的代码示例和最佳实践,帮助开发者高效集成电子签名服务,提升企业数字化转型效率。

weixin_42662293的博客 530

使用 Simulink 进行电力电子系统的大信号模型仿真

电力电子系统(Power Electronics System)包括各种功率转换器(如 DC-DC 转换器、逆变器等)。这些设备中的关键组件(如 MOSFET、IGBT、电容器、电感器等)不仅影响系统的性能,还直接关系到系统的稳定性、效率和可靠性。因此,在设计阶段进行详细的建模和仿真至关重要。大信号模型仿真的目的是通过模拟系统在非线性条件下的真实行为,评估其瞬态响应、稳态性能以及对不同负载和输入电压变化的响应。通过本教程,我们介绍了如何使用 Simulink 进行电力电子系统的大信号模型仿真。背景介绍。

xiaoheshang_123的博客 303

链表-143.重排链表-力扣(LeetCode)

black_bear_white的博客 412

大厂硬件笔试机试题ASIC设计方向-卷3

本文提供了30道硬件工程师机试题目,涵盖数字逻辑、模拟电路、CMOS和信号处理等核心领域。选择题和判断题均配有详细解析,重点考察Verilog编程、CMOS特性、触发器设计、采样定理等知识点。题目难度适中但覆盖面广,如Verilog中阻塞/非阻塞赋值的区别、CMOS静态功耗来源、Nyquist采样定理、通用逻辑门判断等。备考建议强调掌握逻辑门设计、Verilog时序电路编写和CMOS特性理解。这些题目反映了华为等大厂硬件机试的典型考查内容,通过系统复习可有效提升机试成绩,为后续面试奠定基础。

启芯硬件的博客 545

力扣 重排链表

力扣 重排链表 题目描述 给定一个单链表 L:L0→L1→…→Ln-1→Ln , 将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→… 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例 1: 给定链表 1->2->3->4, 重新排列为 1->4->2->3. 示例 2: 给定链表 1->2->3->4->5, 重新排列为 1->5->2->4->3. 要点分析 由于链表无法通过下标访问元

leihao-lester 246

Openclaw 错误分析 与 解决方案 之:Selected model is at capacity. Try a different model, or wait and retry.

Openclaw 错误分析 与 解决方案 :Selected model is at capacity. Try a different model, or wait and retry.

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 6421

项目管理知识体系(PMBOK)中的质量规划详解

你是否遇到过这些场景?软件上线后用户投诉“功能漏洞多”,团队连夜返工;装修完的房子墙面开裂,施工方和业主互相推诿;新研发的手机电池续航不达标,被迫延迟发布。这些问题的根源,往往是项目启动时没有做好质量规划。本文聚焦PMBOK中“质量规划”(Plan Quality Management)过程,覆盖其核心概念、操作步骤、工具技术与实战应用,适用于IT、建筑、制造等各类项目场景。

项目管理的博客 1118

力扣(LeetCode)143 重排链表(Java)

使用栈的方式来实现对链表的重排

tengfei308的博客 392

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

力扣143重排链表

本文详解LeetCode 143重排链表问题的核心解法,通过三步法实现链表结构重组:① 快慢指针法精准定位链表中点(时间复杂度O(n));② 原地反转后半链表,详细图解指针操作避免节点丢失(包含暂存next节点等关键技巧);③ 双指针交叉合并两段链表,配合示意图解析节点连接顺序。提供Java代码实现并对比数组解法,强调O(1)空间复杂度优势。深入探讨快慢指针边界条件(fast.next与fast.next.next双校验),解析链表反转时pre/cur/temp三指针协作机制,适合算法面试备考及链表操作进阶

小比特,大梦想 761

深度学习工具包 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")

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Leetcode143. 重排链表

Leetcode143. 重排链表 题目: 给定一个单链表 L:L0→L1→…→Ln-1→Ln , 将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→… 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例 1: 给定链表 1->2->3->4, 重新排列为 1->4->2->3. 示例 2: 给定链表 1->2->3->4->5, 重新排列为 1->5->2->4->3. 题解: 1.定义

会流泪de鱼的博客 866

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

力扣143.重排链表

给定一个单链表L的头节点head,单链表L表示为:请将其重新排列后变为:不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。[1,4,2,3]

2301_80505422的博客 683

LeetCode第143题_重排链表

给定一个单链表 L 的头节点 head ,单链表 L 表示为:请将其重新排列后变为:不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。

qq_40263592的博客 1330

LeetCode【0143】重排链表

题目难度:中等;数据结构:链表;应用算法:快慢指针法

AnFany 880

【Leetcode】Leetcode143.重排链表

Leetcode143.重排链表 题目 给定一个单链表 L:L0→L1→…→Ln-1→Ln , 将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→… 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例 1: 给定链表 1->2->3->4, 重新排列为 1->4->2->3. 示例 2: 给定链表 1->2->3...

voidfaceless的博客 247

golang力扣leetcode 143.重排链表

143.重排链表143.重排链表题解代码 143.重排链表 143.重排链表 题解 找到中点断开,翻转后面部分,然后合并前后两个链表 重建该链表 两种实现方式 代码 package main type ListNode struct { Val int Next *ListNode } //找到中点断开,翻转后面部分,然后合并前后两个链表 func reorderList1(head *ListNode) { if head == nil { return } mid := findM

清风 559

力扣143. 重排链表(栈、插入链表)

力扣143. 重排链表(栈、插入链表) https://leetcode-cn.com/problems/reorder-list/ 给定一个单链表L:L0→L1→…→Ln-1→Ln , 将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→… 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例1: 给定链表 1->2->3->4, 重...

小麦China的博客 366

LeetCode-143-重排链表

重排链表 题目描述:给定一个单链表 L 的头节点 head ,单链表 L 表示为: L0 → L1 → … → Ln-1 → Ln 请将其重新排列后变为: L0 → Ln → L1 → Ln-1 → L2 → Ln-2 → … 不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例说明请见LeetCode官网。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/reorder-list/ 著作权归领扣网络所有。商业转载请联系官方授权,非商业

玉树临风,仙风道骨 421
上一篇: Leetcode之填充每个节点的下一个右侧节点指针 II
下一篇: 二叉树之堆排序
1无名之辈1
博客等级 码龄5年 4674粉丝 46原创
评论 43
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

1无名之辈1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值