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

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

先序遍历

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

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

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

其基本思路是:

  1. 访问当前节点。
  2. 递归遍历当前节点的左子树。(由于栈的先进后出性质,所以先将右子树入栈,后将左子树入栈,出栈的时候是左子树先出栈,右子树后出栈,符合先序遍历的顺序。)
  3. 递归遍历当前节点的右子树。
复制代码
def dfs_preorder(root):
    if root is None:
        return
    print(root.val)             # 访问当前节点。
    dfs_preorder(root.left)     # 递归遍历当前节点的左子树。
    dfs_preorder(root.right)    # 递归遍历当前节点的右子树。
相关推荐
residual_fan2 分钟前
航空发动机故障诊断专用智能体(三):基于对比学习的时序特征区分方法
人工智能·算法·数据挖掘·数据分析
高亦真19 分钟前
今天是学习嵌入式的第39天
linux·学习·算法
Omics Pro1 小时前
AI药物研发10原则!欧盟EMA×美国FDA
数据库·人工智能·算法·机器学习·自然语言处理
wabs6661 小时前
关于二叉树【力扣100.相同的树的思考】
数据结构·c++·算法·leetcode·二叉树·递归法
知知之之1 小时前
敏感数据查询:SHA-256 还是 HMAC-SHA256
算法
彧azz1 小时前
Java学习记录:判断语句
java·笔记·学习·算法
alphaTao1 小时前
LeetCode 每日一题 2026/9/14-2026/9/20
算法·leetcode
hanlin031 小时前
刷题笔记:力扣第560题-和为k的子数组
笔记·算法·leetcode
residual_fan2 小时前
航空发动机故障诊断专用智能体(四):深度强化学习与自适应奖励机制
人工智能·算法·数据挖掘·数据分析
2601_962218612 小时前
万象生鲜系统多终端统一数据协议PC手机PDA数据实时同步
大数据·数据库·人工智能·python·算法