二叉树的遍历算法之先序遍历

我们先来熟悉一下二叉树的概念:二叉树是‌每个节点最多有两个子树‌的树形数据结构,通常分为左子树和右子树。

先序遍历

先序遍历就是先访问根节点,然后遍历左子树,最后遍历右子树。

二叉树的先序遍历的递归实现

该版本是二叉树深度优先搜索最常见的实现方式。

其基本思路是:

  1. 访问当前节点。
  2. 递归遍历当前节点的左子树。(由于栈的先进后出性质,所以先将右子树入栈,后将左子树入栈,出栈的时候是左子树先出栈,右子树后出栈,符合先序遍历的顺序。)
  3. 递归遍历当前节点的右子树。
复制代码
def dfs_preorder(root):
    if root is None:
        return
    print(root.val)             # 访问当前节点。
    dfs_preorder(root.left)     # 递归遍历当前节点的左子树。
    dfs_preorder(root.right)    # 递归遍历当前节点的右子树。
相关推荐
UIU1144 小时前
P1233 [ICPC 2001 Taejon R] 木棍加工
数据结构·c++·算法·动态规划
论文复现现场4 小时前
WRF、FEA 能用 L40S 加速吗?求解器检查、断点恢复与长期运行
java·数据库·算法·wrf·有限元分析·gpu计算·断点续算
ZhengEnCi4 小时前
用 AI 写代码为什么拼到最后还是拼人:算力瓶颈与领域专家提示词的本质差异
算法·架构
秋天的怀念_David5 小时前
第二十一夜 · 数字黑洞与西西弗斯的惩罚
java·程序人生·算法
碧海银沙音频科技研究院6 小时前
在PC电脑上用Whisper→Marian算法实现离线语音翻译功能
算法·whisper
niyongsheng6 小时前
3D 装箱算法工程化:数据结构、放置启发式与支撑规则
数据结构·算法·rust
j7~9 小时前
【穷举、深搜与回溯算法】一棵决策树讲透全排列与子集
数据结构·c++·算法·leetcode·回溯·递归
傅科摆 _ py10 小时前
DP,贪心,堆和栈,二分力扣复习
开发语言·python·算法
Shaoshing10 小时前
LeetCode100 42.接雨水
java·算法·leetcode
域限奇点访客11 小时前
用AI生成问卷的网站怎么选?看题目录入结构、题型映射和生成后的校验
算法