数据结构与算法之二叉树: LeetCode 111. 二叉树的最小深度 (Ts, Py, Go版)

【数据结构】二叉树OJ练习 二叉树的最小深度、单值二叉树、相同的树、另一棵树的子树、翻转二叉树、堆成二叉树、二叉树的前序遍历、平衡二叉树 阅读详情

二叉树的最小深度

  • https://leetcode.cn/problems/minimum-depth-of-binary-tree/

描述

  • 就 给定一个二叉树,找出其最小深度。

  • 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。

  • 说明:叶子节点是指没有子节点的节点。

示例 1

    3
   / \
  9  20
    /  \
   15   7
输入:root = [3,9,20,null,null,15,7]
输出:2

示例 2

输入:root = [2,null,3,null,4,null,5,null,6]
输出:5

提示

  • 树中节点数的范围在 [0, 10510^5105] 内
  • -1000 <= Node.val <= 1000

Typescript 版算法实现


1 )方案 1
/**
 * Definition for a binary tree node.
 * class TreeNode {
 *     val: number
 *     left: TreeNode | null
 *     right: TreeNode | null
 *     constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
 *         this.val = (val===undefined ? 0 : val)
 *         this.left = (left===undefined ? null : left)
 *         this.right = (right===undefined ? null : right)
 *     }
 * }
 */

function minDepth(root: TreeNode | null): number {
    if(!root) return 0;
    const q: [TreeNode | null, number][] = [[root, 1]]; // 队列传递根节点 和 层级
    while(q.length) {
        const [n, l] = q.shift(); // 取出队首元素和层级
        // console.log(n); // 访问队首元素
        // 如果遇到了叶子节点,直接返回层级
        if(!n.left && !n.right) {
            return l;
        }
        n.left && q.push([n.left, l+1]);
        n.right && q.push([n.right,l+1]);
    }
}
  • 思路
    • 求最小深度,考虑使用广度优先遍历
    • 在广度优先遍历中,遇到叶子节点,停止遍历,返回叶子节点层级即可
    • 这个算法,效率很高
  • 步骤
    • 广度优先遍历整棵树,并记录每个节点的层级
    • 遇到叶子节点,返回节点层级,并停止遍历

2 )方案 2

/**
 * Definition for a binary tree node.
 * class TreeNode {
 *     val: number
 *     left: TreeNode | null
 *     right: TreeNode | null
 *     constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
 *         this.val = (val===undefined ? 0 : val)
 *         this.left = (left===undefined ? null : left)
 *         this.right = (right===undefined ? null : right)
 *     }
 * }
 */

function minDepth(root: TreeNode | null): number {
    const queue:TreeNode[]  = []
    let depth: number = 0 // 最小深度
    if(root) {
        queue.push(root)
    }
    while(queue.length) {
        // 获取一层的节点数量
        let size = queue.length
        depth ++
        // 获取一层的所有节点 size--
        while(size--) {
            const first = queue.shift() // 队首出
            // 同一层左侧入队
            first.left && queue.push(first.left);
            // 同一层右侧入队
            first.right && queue.push(first.right);
            // 到叶子节点即可返回
            if(!first.left && !first.right)
                return depth
        }
    }
    return depth
}
  • 这是官方提供的示例,为何用广度优先遍历?
  • 是因为最快,不需要遍历到所有的叶子节点,只需要遍历到最小深度
  • 最小深度的定义是:只要再没有孩子节点,则其就是叶子

3 ) 方案3

/**
 * Definition for a binary tree node.
 * class TreeNode {
 *     val: number
 *     left: TreeNode | null
 *     right: TreeNode | null
 *     constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
 *         this.val = (val===undefined ? 0 : val)
 *         this.left = (left===undefined ? null : left)
 *         this.right = (right===undefined ? null : right)
 *     }
 * }
 */

function minDepth(root: TreeNode | null): number {
    // 无节点情形
    if (!root) return 0;
    // 没有孩子节点场景
    if (!root.left && !root.right) return 1
    // 初始化最小值
    let min_depth = Number.MAX_SAFE_INTEGER;
    // 对左子树进行遍历
    root.left && (min_depth = Math.min(minDepth(root.left), min_depth));
    // 对右子树进行遍历
    root.right && (min_depth = Math.min(minDepth(root.right), min_depth));
    // 当前最小值 + 1 并返回
    return min_depth + 1
};
  • 这个其实也是官方示例,只不过官方是python版本,我改成的TS版本
  • 这里用的是递归,也就是深度优先遍历来处理的,所有叶子节点全部遍历
  • 在这个过程中求最小值,这个版本没有广度优先遍历算法合适
  • 所以,此方案不推荐

Python3 版算法实现


1 ) 方案1:迭代版(BFS)

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right

class Solution:
    def minDepth(self, root: Optional[TreeNode]) -> int:
        if not root:
            return 0
        q: Deque[tuple[TreeNode, int]] = deque([(root, 1)])  # 队列传递根节点和层级
        while q:
            n, l = q.popleft()  # 取出队首元素和层级
            if not n.left and not n.right:  # 如果遇到了叶子节点,直接返回层级
                return l
            if n.left:
                q.append((n.left, l + 1))
            if n.right:
                q.append((n.right, l + 1))

2 ) 方案2:迭代法(BFS)另一种实现

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right

class Solution:
    def minDepth(self, root: Optional[TreeNode]) -> int:
        queue: Deque[TreeNode] = deque()
        depth = 0  # 最小深度
        if root:
            queue.append(root)
        while queue:
            size = len(queue)
            depth += 1
            while size:
                first = queue.popleft()  # 队首出
                if first.left:
                    queue.append(first.left)
                if first.right:
                    queue.append(first.right)
                if not first.left and not first.right:  # 到叶子节点即可返回
                    return depth
                size -= 1
        return depth

3 ) 方案3:递归法

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right

class Solution:
    def minDepth(self, root: Optional[TreeNode]) -> int:
        if not root:
            return 0
        if not root.left and not root.right:
            return 1
        min_depth = float('inf')
        if root.left:
            min_depth = min(self.minDepth(root.left), min_depth)
        if root.right:
            min_depth = min(self.minDepth(root.right), min_depth)
        return min_depth + 1

Golang 版算法实现


1 ) 方案1:迭代法(BFS)

/**
 * Definition for a binary tree node.
 * type TreeNode struct {
 *     Val int
 *     Left *TreeNode
 *     Right *TreeNode
 * }
 */
func minDepth(root *TreeNode) int {
	if root == nil {
		return 0
	}
	queue := [][2]interface{}{{root, 1}} // 队列传递根节点和层级
	for len(queue) > 0 {
		n, l := queue[0][0].(*TreeNode), queue[0][1].(int) // 取出队首元素和层级
		queue = queue[1:]
		if n.Left == nil && n.Right == nil { // 如果遇到了叶子节点,直接返回层级
			return l
		}
		if n.Left != nil {
			queue = append(queue, [2]interface{}{n.Left, l + 1})
		}
		if n.Right != nil {
			queue = append(queue, [2]interface{}{n.Right, l + 1})
		}
	}
	return 0
}

2 ) 方案2:迭代法(BFS)另一种实现

/**
 * Definition for a binary tree node.
 * type TreeNode struct {
 *     Val int
 *     Left *TreeNode
 *     Right *TreeNode
 * }
 */

func minDepth(root *TreeNode) int {
	if root == nil {
		return 0
	}
	queue := []*TreeNode{root}
	depth := 0 // 最小深度
	for len(queue) > 0 {
		size := len(queue)
		depth++
		for size > 0 {
			first := queue[0] // 队首出
			queue = queue[1:]
			if first.Left != nil {
				queue = append(queue, first.Left)
			}
			if first.Right != nil {
				queue = append(queue, first.Right)
			}
			if first.Left == nil && first.Right == nil { // 到叶子节点即可返回
				return depth
			}
			size--
		}
	}
	return depth
}

3 ) 方案3:递归版

/**
 * Definition for a binary tree node.
 * type TreeNode struct {
 *     Val int
 *     Left *TreeNode
 *     Right *TreeNode
 * }
 */

func minDepth(root *TreeNode) int {
	if root == nil {
		return 0
	}
	if root.Left == nil && root.Right == nil {
		return 1
	}
	leftDepth := math.MaxInt32
	rightDepth := math.MaxInt32
	if root.Left != nil {
		leftDepth = minDepth(root.Left)
	}
	if root.Right != nil {
		rightDepth = minDepth(root.Right)
	}
	return 1 + int(math.Min(float64(leftDepth), float64(rightDepth)))
}
Python与CAD系列基础篇(二)创建点和直线并修改样式 ①通过pyautocad连接AutoCAD进行处理②通过ezdxf处理dxf格式文件。创建和编辑点和直线的方法,并演示如何修改它们的样式、颜色和线型。 阅读详情

相关推荐

树莓派介绍与可安装的操作系统

树莓派是一款由英国树莓派基金会开发的信用卡大小的微型计算机。处理器(CPU)内存(RAM)图形处理器(GPU)USB 接口网络接口(以太网和 Wi-Fi)视频输出(HDMI)音频输出用户只需添加电源、存储卡、显示器和输入设备(键盘、鼠标),就可以将其当作一台功能齐全的电脑使用。主要特点:低成本:价格亲民,适合教育和个人项目。小巧便携:体积小,便于携带和部署。功能强大:支持多种编程语言和操作系统,功能不逊于传统电脑。树莓派从最初的教育工具发展成为功能强大的多用途平台。最新的树莓派 5。

像风一样自由的博客 2200

leetcode111二叉树最小深度

给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明:叶子节点是指没有子节点的节点。 示例 1: 输入:root = [3,9,20,null,null,15,7] 输出:2 示例 2: 输入:root = [2,null,3,null,4,null,5,null,6] 输出:5 提示: 树中节点数的范围在 [0, 105] 内 -1000 <= Node.val <= 1000 class Solution { public int min

qq_32174521的博客 268

基础知识学习 -- qnx 系统

qnx os车载系统

求变,从思想开始 3878

111. 二叉树的最小深度

111. 二叉树的最小深度 难度:简单 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 **说明:**叶子节点是指没有子节点的节点。 示例 1: 输入:root = [3,9,20,null,null,15,7] 输出:2 示例 2: 输入:root = [2,null,3,null,4,null,5,null,6] 输出:5 提示: 树中节点数的范围在 [0, 10^5] 内 -1000 <= Node.val <= 1000 解答: /*

Finish_Hou 152

FreeModbus源码详解

本篇按照FreeModbus协议栈的工作流程,对源代码进行总结解析;FreeModbus协议栈作为从机,等待主机传送的数据,当从机接收到一帧完整的报文后,对报文进行解析,然后响应主机,发送报文给主机,实现主机和从机之间的通信; 1:demo.c中三个函数,完成协议栈的准备工作; eMBInit()函数:(mb.c) /*函数功能: *1:实现RTU模式和ASCALL模式的协议栈初始化; *2

2万+

FRM(Financial Risk Manager,金融风险管理师)知识点总结归纳

FRM知识点总结(150字) FRM考试分为两级:一级侧重基础理论和工具,包含风险管理基础、定量分析、金融市场产品、估值与风险建模四大模块,涵盖风险管理框架、统计学方法、衍生品定价及VaR计算等核心内容。二级聚焦实际应用,分为市场风险、信用风险、操作风险、流动性风险、投资管理和市场前沿六大模块,深入探讨高级风险度量技术(如极值理论)、信用风险模型、巴塞尔协议及新兴风险议题。考试体系贯穿"风险识别→度量→管理→监管"逻辑主线,强调定量分析与实务案例的结合,覆盖传统金融风险和区块链、ESG等

极客神殿 1445

算法25:二叉树的最小深度

学习了二叉树的最小深度有丝丝进步,递归的逻辑有些清晰了,但是自己写还是有难度的,感觉还是很迷,变下就乱了,还带提高left+right+1这里容易卡点,这里其实为了返回其中有一个为空或两都为空的情况,因为是null,所以会返回0,所以加起来也没事,得到的还是非null值+1,和我判断为空并返回对方值+1 的思路是一致的只有在两个子节点都在的情况下才会去比较min的值+1算法兴趣+1 总:25加强了对算法的分析能力。

qq_40775800的博客 521

【车载以太网测试从入门到精通】系列文章目录汇总

物理层测试、数据链路层测试、以太网交换机测试、网络层测试、传输层测试、以太网TCP/IP协议自动化测试、以太网网络管理测试、以太网网络管理自动化测试、鲁棒性测试、SOME/IP测试、SOMEI/IP服务接口自动化测试、DoIP诊断测试、DoIP诊断自动化测试、DoIP BootLoader刷写、以太网网关路由测试、以太网网关路由自动化测试、AVB测试。

测试领域技术分享 3163

LeetCode二叉树系列——144.二叉树的最小深度

刚刚我们说过了二叉树有两种存储方式顺序存储,和链式存储,顺序存储就是用数组来存,这个定义没啥可说的,我们来看看链式存储的二叉树节点的定义方式。intval;};大家会发现二叉树的定义和链表是差不多的,相对于链表,二叉树的节点里多了一个指针,有两个指针,指向左右孩子。这里要提醒大家要注意二叉树节点定义的书写方式。在现场面试的时候面试官可能要求手写代码,所以数据结构的定义以及简单逻辑的代码一定要锻炼白纸写出来。二叉树是一种基础数据结构,在算法面试中都是常客,也是众多数据结构的基石。...

w20001118的博客 1713

分布式锁特点、以及用python3实现redis分布式锁

以下是 Python3 实现 Redis 分布式锁的详细教程,包含代码示例、原理说明及最佳实践。

数据知道的博客 2万+

复现《水化硅铝酸钙微结构和性能的分子动力学模拟研究》的分子动力学模拟

本文详细复现了杨军博士论文中关于水化硅铝酸钙(C-A-S-H)凝胶的分子动力学模拟方法。研究内容包括:1)基于11Å Tobermorite构建C-A-S-H分子模型,通过缺陷引入和Al掺杂调节Ca/Si比;2)使用ReaxFF力场模拟交联C-A-S-H的结构与力学性能;3)采用ClayFF力场研究纳米孔道中水和离子传输行为。研究提供了完整的LAMMPS输入脚本、Python分析代码和力场参数设置,为水泥基材料纳米尺度模拟提供可复现的技术方案。

huanghm88的专栏 109

LeetCode 111. 二叉树的最小深度:递归(DFS)与层序(BFS)双解法剖析与多语言实现

> 本文基于 doocs/leetcode 仓库中 [0111.Minimum Depth of Binary Tree](https://link.gitcode.com/i/9b34a286dacfe20b46157d8e94111dbe) 的题解文档,深入剖析「二叉树的最小深度」这一经典二叉树问题。文章将从题意解读、关键难点出发,完整讲解递归(深度优先搜索)与队列层序遍历(广度优先搜索)两种

gitblog_00013的博客 464

基于 YOLOv26 的遥感图像目标检测系统:从原理到模型

本文介绍了基于YOLOv26的遥感图像目标检测系统。YOLOv26凭借端到端设计、轻量化架构和小目标优化能力,有效解决了遥感图像中多尺度目标、复杂背景、小目标检测等挑战。系统采用CSPDarknet骨干网络和FPN+PAN特征融合模块,通过MuSGD优化器和改进损失函数提升训练效果。文章详细阐述了数据预处理、模型训练流程和优化技巧,包括Tile推理和混合精度训练。系统支持多种部署方式,在CPU上推理速度提升43%,能实现高精度、实时性的遥感目标检测,适用于城市规划、农业监测等场景。

一键难忘的博客 571

LeetCode 104. 二叉树的最大深度:递归解法与多语言实现详解(doocs/leetcode 仓库题解)

本篇围绕 LeetCode 第 104 题「二叉树的最大深度」,以 doocs/leetcode 仓库中 [0104.Maximum Depth of Binary Tree](https://link.gitcode.com/i/c76ba3feb68914ce032ae727119a2336) 题解文档为主体,完整讲解题目定义、示例与约束、递归求解的核心思路,并逐语言(Python、Java、

gitblog_00923的博客 861

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Brush 高斯泼溅 3D 重建快速上手:3 步从克隆到窗口弹出

Brush 是一款用高斯泼溅(Gaussian Splatting,把海量透明小椭球"泼"出真实感画面的 3D 技术)做 3D 重建的开源引擎。喂给它一个照片数据集,就能训练出可实时拖拽漫游的 3D 场景;不训练时,它也是个能直接加载 .ply 文件的 splat 查看器。这篇 Brush 安装教程以桌面端为主路径,Web 和 Android 作为分叉入口,装完你直接得到一个 3D 查看器窗口,或

gitblog_01147的博客 433

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Vorssaint:一个菜单栏图标干 70+ 小工具的活,免费开源,装不装你说了算

菜单栏上的图标越攒越多,小工具们各自装一个、各自授权一次、各自在后台占一份位置。Vorssaint 是免费开源的 macOS 菜单栏工具包,把按应用调音量、系统监控、窗口切换器、剪贴板历史这 70 多个工具收进同一个图标:不用注册、不带统计、不收订阅费。读完这篇你会知道它一条命令怎么装好、权限该给到哪一档、哪些功能最值得先开。先说限制:只支持 Apple Silicon 加 macOS 14(So

gitblog_00840的博客 234

IEM模型,地表粗糙度模拟

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

黑群晖 RR引导 完整教程:5步完成安装引导盘并学会自救

RR引导(Redpill Recovery)就是一张能装系统也能救场的引导盘:写进 U 盘,任意 x86/x64 机器即可安装黑群晖 DSM,装砸了同一张盘还能进恢复环境找回数据。本文适合准备自建 NAS 的新手,当前版本 26.7.4,按下面 5 个步骤走即可。 ## 🧩 ① 下载镜像前,先做 4 项硬件自查 大部分安装失败源于硬件不达标,对照下表逐项打勾再动手: | 检查项 | 要求

gitblog_00052的博客 1086

洛雪音乐音源完整指南:5分钟免费实现全平台听歌

洛雪音乐(lxmusic)本身不提供任何歌曲,它的威力全部来自"音源"。把一份 .js 音源脚本导入播放器,你就能免费搜索、播放 QQ 音乐、网易云、酷狗、酷我、咪咕的全网音乐。这个仓库按更新批次整理了全网洛雪音乐音源,本文帮你从中选出合适的,并快速跑起来。 ## 场景速览:5秒定位你该看哪块 ### 只想听某一家平台的歌 如果歌单集中在网易云或酷狗,选一个单平台专项音源(比如统一音乐源)就

gitblog_00105的博客 300

剑指 Offer II 051 节点之和最大的路径:二叉树最大路径和递归解法全解(doocs/leetcode 多语言实现)

二叉树中的最大路径和(Binary Tree Maximum Path Sum)是树形 DP 与深度优先搜索面试中的经典高频题。本文以 doocs/leetcode 仓库中《剑指 Offer(第 2 版)》的「剑指 Offer II 051. 节点之和最大的路径」题解为主体,从题目定义出发,推导"单链贡献 + 拐弯结算"的递归解法,并给出 Python3、Java、C++、Go、TypeScrip

gitblog_00689的博客 990

如何快速搭好NapCatQQ开发环境避坑指南

NapCatQQ 是基于 NTQQ 的 QQ 机器人框架,不开 QQ 客户端就能登录账号、收发群聊私聊消息,并对外提供 OneBot v11 机器人接口,还自带 Web 管理界面。跟着下面的步骤,你可以在本地启动一套完整可调试的 NapCatQQ 开发环境。 ## 先看清楚你要装的是什么 NapCatQQ 是"协议端"实现:它直接对接 NTQQ 的核心能力,把机器人功能做成可编程的 Node.

gitblog_01096的博客 407

hello-algo 俄语版数据结构与算法术语表:英俄中三语对照与仓库源码印证

本文基于《Hello 算法》(hello-algo)仓库俄语文档附录中的术语表([terminology.md](https://link.gitcode.com/i/3bed2c2ddb4f88013459a6f07cc20f1c)),完整收录全书 128 个核心数据结构与算法术语的英俄对照(并补充简体中文对照),将这些术语按复杂度分析、数组链表、栈队列、哈希、树、堆、图、查找排序、分治、回溯、

gitblog_00380的博客 425

LeetCode 110 平衡二叉树判定:doocs/leetcode 自底向上递归解法全解析

本文围绕 LeetCode 第 110 题「平衡二叉树(Balanced Binary Tree)」,以 doocs/leetcode 仓库中 [0110.Balanced Binary Tree](https://link.gitcode.com/i/b4a8cb87a9228a452c692a47feeb76ca) 题解文档为骨架,深入讲解「自底向上的递归」这一核心解法:它如何用一次后序遍历同

gitblog_00577的博客 130

(爆)重写目前做过的81道LeetCode题目

从6月份我的Leetcode计划两个月以来,明显的感觉到了Python熟练度有所提升,这两个月的时间,断断续续做了大概100道题,在博客上目前记录的有82道,有些数据结构和算法的题目,包括一些技巧其实还不是很熟练。对于应届生来说,算法基础还是最重要的一部分。 同时我不太满足于仅有的Python水平的提升,并不是贪多,而是觉得语言是相通的,Python仍是我接触很多语言以来最喜欢的语言,我也想...

eswang的优快云博客 598

KMS_VL_ALL_AIO 完整教程:一条命令激活 Windows 11 与 Office 2024,每周自动续期

重装完 Windows,桌面右下角"激活 Windows"的水印去不掉,打开 Office 又提示授权无效。单文件脚本 KMS_VL_ALL_AIO 一次运行就能完成 Windows 11 和 Office 2024 的 KMS 激活,之后按周自动续期,不用找密钥、不用记到期时间。 ## 60 秒上手:从克隆到激活完成 1. 命令行执行 `git clone https://gitcode.c

gitblog_00518的博客 225

LeetCode 1448 二叉树中好节点计数(Count Good Nodes in Binary Tree):DFS 与 BFS 双解法实战剖析

> 导读:本文以仓库内 [hints/count-good-nodes-in-binary-tree.md](https://link.gitcode.com/i/e4445a1be13c3a7e539e33f0ab49c3c9) 的解题提示为核心脉络,系统讲解 LeetCode 1448「统计二叉树中的好节点」问题。你将掌握如何用一次 `O(n)` 遍历替代 `O(n²)` 暴力解法,理解"路径

gitblog_00446的博客 241

DeepSeek Harness dsh-purge 插件安装指南:10 分钟从装到验证

dsh-purge 是跑在本地官方 DeepSeek Harness 上的红队评测插件:清洗宿主运行时策略、按模型换提示词,并附带一个受控演练台。本文带你走「安装 → 应用 → 验证」三步,全程约 10 分钟、3 条命令、2 次重启,顺手绕开两个最易踩的坑——装错 profile 和宿主没退干净。 ## 先花 2 分钟确认:这条路你走不走得通 动手前先对下表。判断错了,后面每一步都是在白做。

gitblog_00042的博客 79
上一篇: 数据结构与算法之二叉树: LeetCode 104. 二叉树的最大深度 (Ts, Py, Go版)
下一篇: 数据结构与算法之二叉树: LeetCode 102. 二叉树的层序遍历 (Ts, Py, Go版)
Wang's Blog
博客等级 码龄12年 7438粉丝 2421原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

Wang's Blog

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

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

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

打赏作者

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

抵扣说明:

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

余额充值