求二叉树指定结点到根结点的路径c++ 非常详细。

输出二叉树根节点到任意内节点的路径 最近在看二叉树的时候会突然想到,如果知道二叉树的结构,以及二叉树的结构。现在知道树中内节点的指针,怎么查找到从根到节点的路径呢? 看到网上大体有两种方法,一种是递归的方法,另外一种是非递归的方法。   方法一:递归二叉树 出自:http://blog.youkuaiyun.com/hhygcy/article/details/4660362 bool nodePath (bstNode* pRoot, 阅读详情

 看了很多 没有看见完整的代码 我喜欢喂饭喂到嘴边。

部分代码参考16 二叉树:以x为根的子树的深度_DHU杨骅麟(紫外线过敏)的博客-优快云博客

面试经典(16)--二叉树根节点到指定节点的路径_nginux的博客-优快云博客_二叉树根节点到目标节点路径

 运行示例:

 

#include<iostream>
#include<stack>
#include<vector>
using namespace std;
struct Node
{
    string data;
	Node* left;
	Node* right;
};
//查找二叉树指定节点

Node* target = NULL;
void creat(Node*& T, string kk)
{
    string ch;
    cin >> ch;
    if (ch == kk)
    {
        T = NULL;
    }//但凡输入了#号 该节点下一位停止
    else
    {
        T = new Node;
        T->data = ch;
        creat(T->left, kk);
        creat(T->right, kk);
    }
}


void find(Node* root, string x)//用来寻找结点的地址 
{
	Node* p = root;
	if (p == NULL)
	{
		return;
	}
	else if (p->data == x)
	{

		target = p;//核心 找到p的地址 抓包给全局变量 target现在的值就是所求的地址
	}

	else if (p != NULL && p->data != x)
	{
		find(p->left, x);
		find(p->right, x);
	}
}




bool display(Node* pRoot, Node* pNode, vector<string>& v)
{
	if (pRoot == NULL)
	{
		return false;
	}
	v.push_back(pRoot->data);
	bool found = false;
	if (pRoot == pNode)//还是比较指针稳妥,节点值有可能重复
	{
		for (int i = 0; i < v.size(); i++)
			cout << v[i] << " ";
		cout << endl;
		return true;
	}
	if (!found && pRoot->left)
	{
		found = display(pRoot->left, pNode, v);
	}

	//一旦左子树中找到节点,就不需要再遍历右子树
	if (!found && pRoot->right)
	{
		found = display(pRoot->right, pNode, v);
	}
	if (!found)
		v.pop_back();
	return found;
}



int main()
{
	Node* root;
	string kk;
	cout << "请输入表示终止的符号:" << endl;
	cin >> kk;
	cout << "现在请输入你的二叉树 请用先序遍历输入" << endl;
	creat(root, kk);
	vector<string>m;
	cout << "输入你要找的节点" << endl;
	string x;
	cin >> x;	
	find(root, x);
	cout << "路径如下:" << endl;
	display(root, target, m);
	return 0;

}

【数据结构】二叉树的带权路径长度WPL是二叉树中所有叶结点的带权路径长度之和。给定一颗二叉树T,采用二叉链表存储,结点结构为: 其中叶结点的weight域保存该结点的非负权值。设root为指向T的根结点的指针,请设计求T的WPL的算法,要求:1)给出算法的基本设计思想2)使用C或C++语言,给出二叉树结点的数据类型定义3)根据设计思想,采用C或C++描述算法4)给出该算法的时间复杂度。...... 阅读详情

相关推荐

C++求二叉树深度

开发工具与关键技术: Visual Studio / C++ 作者:何文涛 撰写时间:2019-8-05 二叉树的创建以及简单的运用我上次以及发布过了,现在做的是求二叉树的数深度。 下面就举了了例子来演示求二叉树的算法: //二叉树节点 typedef struct BINARYNODE { char ch; struct BINARYNODE* lchild; struct BINARYNOD...

weixin_44549626的博客 6944

【二叉树】指定结点到根节点的路径

利用后序遍历非递归的思想,结合栈。 如果某结点的左右子树均未找到指定结点,则将该结点出栈,那就需要标记一下当前结点的访问状态。 直到找到结点,或者遍历完树仍未找到(此时栈空)。 typedef struct BNode { int data; BNode *lchild,*rchild; }*BTree; typedef struct { BNode* bt; ...

hr786250678的博客 7607

从零到一:用ROS2和Gazebo搭建Franka机械臂仿真环境(避坑指南)

本文详细介绍了如何使用ROS2和Gazebo从零开始搭建Franka机械臂的仿真环境,包括环境准备、ROS2包安装、控制器配置及常见问题解决方案。特别针对关节位置控制等核心功能提供了实用代码示例和避坑指南,帮助开发者高效构建机器人算法验证平台。

weixin_29061465的博客 458

【数据结构与算法】二叉树中从每个叶子结点到根结点的路径

请设计一个算法输出二叉树中从每个叶子结点到根结点的路径

知识虔诚的信徒,探索所有未知是信徒毕生的信仰 4923

DCN交换机通过boot模式升级

LIC导入成功后,输入enable进入特权模式,把网线接到通讯网口上,配置好对应interface vlan地址,在enable模式用 copy tftp://x.x.x.x/xxxxxx_nos.img nos.img待提示write ok时,reload设备完成升级。交换机启动后,在显示以下信息时输入“Ctrl+B”,一定得是手动按“Ctrl+B”进入的boot模式才能正常升级。升级交换机成功,在BootROM模式下,执行命令run或reboot,回到CLI配置界面。# 交换机通过boot模式升级。

m0_72501865的博客 946

车辆横向控制MPC实战:从‘老王模型’到CasADi求解的保姆级避坑指南

本文详细解析了车辆横向控制MPC的实战应用,从经典动力学模型选择到CasADi求解器的优化配置,提供了一套完整的避坑指南。重点介绍了车辆动力学模型的验证要点、CasADi环境的高效配置技巧以及MPC问题建模的核心要素,帮助开发者快速实现稳健的横向控制方案。

weixin_42524499的博客 346

数据结构——二叉树根节点到特定节点路径(C语言版)

二叉树——根节点到特定节点路径查找一、思路二、代码实现 一、思路 使用二叉链表创建的二叉树,这里我的思路是用链栈来存放找寻二叉树特定节点中,用来存放节点元素 个人思路:创建链栈,遍历二叉树并把路径中节点元素存放到栈中(如下图所示): L 为一开始创建的链栈头指针 flag = 1,作为标记符,表示还没在一条路径中,找到要找的特定节点元素 二、代码实现 思路理解不了,可以结合运行结果图,加上自己画图理解,运行结果在最下方 #include<stdio.h> #include<s

正弦定理的博客 7676

用逐飞STC32G库做个智能小车:编码器测速、PWM调电机、ADC读电池电压(完整项目)

本文详细介绍了如何使用逐飞科技的STC32G12K128开源库构建智能小车项目,涵盖编码器测速、PWM电机控制和电池电压监测等核心功能。通过硬件选型、开发环境搭建、代码实现及调试技巧的全流程讲解,帮助开发者快速掌握基于STC32G的嵌入式系统开发,实现高性能的智能小车控制。

weixin_42526417的博客 194

求二叉树指定结点到根的路径c语言,求二叉树上结点的路径~请高人指点一下关于这个问题...

该楼层疑似违规已被系统折叠隐藏此楼查看此楼二叉树链表类,没有写主函数#include"stdlib.h"#include"stdio.h"#include"iostream"usingnamespacestd;templatestructBTnode{Td;structBTnode*left;//左指针域structBTnode*right;//右指针域};templa...

weixin_33321992的博客 383

MD01和MD01N比较

摘要:MD01(传统MRP)与MD01N(MRP Live)是SAP系统不同版本的物料需求计划事务码。核心差异包括:MD01N取消MRP列表、简化计划规则、合并MPS/MRP操作、采用BAdI技术等,体现S/4HANA平台简化、标准化和智能化的演进方向。MD01N通过优化参数配置、增强筛选功能、利用HANA实时计算能力,实现了更高效的物料计划流程,代表了新一代计划引擎的技术革新。

SAP_LES_COM的博客 891

保姆级教程:在PX4 Gazebo仿真中为Iris无人机挂载Intel D435i深度相机(含完整配置流程)

本文提供在PX4 Gazebo仿真环境中为Iris无人机挂载Intel D435i深度相机的完整配置流程,涵盖环境准备、模型部署、插件安装及调试技巧。通过详细步骤和常见问题解决方案,帮助开发者快速搭建深度相机仿真环境,适用于无人机视觉开发与算法测试。

weixin_28688385的博客 335

求二叉树中从根结点到叶子结点的路径

#include "tree.cpp" //包含二叉树的基本运算 typedef char ElemType; /*--------- 求二叉树中从根结点到叶子结点的路径 -----------*/ //采用先序遍历方法输出所有从叶子结点到根结点的逆路径 void AllPath1(BTNode *b,ElemType path[],int pathlen){ //path[]存储路径【相当于一个栈】,pathlen记录路径长度 int i; //调用AllPath1函数时,传.

yyy_zxc的博客 4154

PyTorch深度学习实战(24)——使用U-Net架构进行图像分割

图像分割 (Image segmentation) 是计算机视觉领域中的一个重要任务,旨在将图像划分为具有语义信息的不同区域或对象。与目标检测任务不同,图像分割要求像素级别的精确定位和分类,将每个像素标记为属于哪个类别或属于哪个区域。在本节中,我们将介绍图像分割的基本概念,并训练一个基于 U-Net 架构的图像分割模型。

盼小辉丶的博客 1万+

输出二叉树中所有从根结点到叶子结点的路径

// 输出二叉树中所有从根结点到叶子结点的路径.cpp : 定义控制台应用程序的入口点。 #include "stdafx.h" #include #include using namespace std; struct BTNode { char m_value; BTNode *m_left; BTNode *m_right; }; //先序创建二叉树 void CreatBTr

Sun19910114的专栏 7868

观测器选择与工程实践建议

摘要:永磁同步电机(PMSM)无传感器控制中,观测器选型需综合考虑应用场景、性能需求与成本。消费级(家电、工具)推荐滑模观测器(SMO),成本低、鲁棒性强;工业级(伺服、泵阀)适用扩展卡尔曼滤波器(EKF),精度高但计算复杂;车规级(EPS、主驱动)需混合观测器(SMO+EKF),兼顾全速域性能与可靠性。低速时需高频注入法,IPMSM更适用。SMO易实现但存在抖振,EKF调试复杂。未来趋势是混合架构与AI增强,提升适应性与性能。选型需权衡速度范围、电机类型、处理器能力及成本。

汽车软件开发 145

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

二叉树(根节点到任意结点的路径)

假设二叉树采用二叉链表方式存储, root指向根结点,node 指向二叉树中的一个结点,编写函数 path,计算root到 node 之间的路径,(该路径包括root结点和 node 结点)。path 函数声明如下: bool path(BiTNode* root, BiTNode* node, Stack* s); 其中,root指向二叉树的根结点,node指向二叉树中的另一结点,s 为已经初始...

weixin_45454859的博客 8301

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

6-11 求根结点到x结点的路径(递归法)

求根结点到x结点的路径(假定结点值不重复)。 裁判测试程序样例: 输入样例: 输入一行字符序列先序递归构建二叉树。每个字符对应一个结点,#表示空结点。第二行输入一个结点值x。 输出样例: 输出从根到结点x的路径。

2301_80348267的博客 400

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

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

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

POJ 2499 求二叉树结点到根结点的路径长度 递归 二叉树

这题主要求二叉树结点到根结点的路径长度,基本的思路是 比较a与b,如果a大则当前结点是左孩子,a-b作为父结点的左数,父结点的右数与当前右数相等;如果b大则当前结点为右孩子,同理可以求父结点,直到父结点为(1,1)遍历结束。 当用原始的递归算法会超时,需要考虑a=1或b=1的特殊情况,同时利用a与b的倍数关系加快遍历速度 Source Code Problem: 2499

Coding for Dreams 3308

c++输出二叉树叶子结点并输出叶子结点到根结点的路径长度

#include #include using namespace std; //结构体 typedef struct node { char data; struct node *lchild,*rchild; }binary_tree,*tree; //构造一棵树,以字符0作为空 void creat_tree(tree &t) { char ch;

u012967763的专栏 5976

C++——用二叉链表实现一个二叉树

题目: 根据二叉树的抽象数据类型的定义,使用二叉链表实现一个二叉树。 二叉树的基本功能: 1、二叉树的建立 2、前序遍历二叉树 3、中序遍历二叉树 4、后序遍历二叉树 5、按层序遍历二叉树 6、求二叉树的深度 7、求指定结点到根的路径 8、二叉树的销毁 9、其他:自定义操作 编写测试main()函数测试线性表的正确性 需求分析: (1)输入的形式:字符型,且为一字符串,还要输入所求路径的叶结点 (2)输出的形式:也为字符串,即开始建立的二叉树的前序,后序,层序,中序遍历结果,和二叉树深度、所求叶结点的路径。

芋头圆生煎的博客 9804

二叉树叶子结点到根结点的路径查找算法

<br />#include<iostream> #include<string> #include<vector> #include<iomanip> #include<stdlib.h> #include <stdio.h> using namespace std; const int MaxSize = 100; typedef struct tnode { char data; struct tnode *lchild, *rchild; }BTNode;

1414

【C++/数据结构】求二叉树上结点的路径

#include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;queue&gt; #include &lt;stack&gt; using namespace std; //题目四:求二叉树上结点的路径 //设计要求:在采用链式存储结构存储的二叉树上,以bt 指向根结点, //p...

weixin_43442778的博客 930

C++描述 LeetCode 112. 路径总和

C++描述 LeetCode 112. 路径总和   大家好,我叫亓官劼(qí guān jié ),在优快云中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在优快云中写博客,唯一博客更新的地址为:亓官劼的博客 ,同时正在尝试在B站中做一些内容分享,B站主页为: 亓官劼的B站主页 本文原创为亓官劼,请大家支持原创,部分平台一直在恶意盗取博主的文章!!! 若需联系博主,可以联系本人微信:qiguanjie2015 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的

一起加油 3207

C++ 二叉树求叶子结点数及输出叶子结点的路径

话不多说,直接看代码 1.头文件及二叉树结点定义 #include<iostream> using namespace std; typedef struct Bitnode { char data; struct Bitnode* lchild, * rchild; }Bitnode,*Bitree; 2.建立二叉链表,这里用的是先序建立 void FCreatBitree(Bitree& T)//先序建立二叉链表 { char ch; cin >> ch;

wikl的博客 4730
上一篇: 16 二叉树:以x为根的子树的深度
下一篇: 18 二叉树:层次遍历
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

杨骅麟(Morgan Young)

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

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

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

打赏作者

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

抵扣说明:

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

余额充值