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

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

先序遍历

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

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

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

其基本思路是:

  1. 访问当前节点。
  2. 递归遍历当前节点的左子树。(由于栈的先进后出性质,所以先将右子树入栈,后将左子树入栈,出栈的时候是左子树先出栈,右子树后出栈,符合先序遍历的顺序。)
  3. 递归遍历当前节点的右子树。
复制代码
def dfs_preorder(root):
    if root is None:
        return
    print(root.val)             # 访问当前节点。
    dfs_preorder(root.left)     # 递归遍历当前节点的左子树。
    dfs_preorder(root.right)    # 递归遍历当前节点的右子树。
相关推荐
KaMeidebaby1 天前
卡梅德生物技术快报|PD1 单克隆抗体定制配套 N 糖全谱质控开发
前端·人工智能·算法·数据挖掘·数据分析
8Qi81 天前
LeetCode 235. 二叉搜索树的最近公共祖先(LCA)
算法·leetcode·二叉树·递归·二叉搜索树·lca·迭代
bIo7lyA8v1 天前
算法稳定性分析中的随机扰动建模的技术8
算法
科研online1 天前
基于多源数据和XGBoost-SHAP分析中国大陆绿地碳汇空间变异影响因素的非线性相关性与尺度差异
算法·学习方法
Cthy_hy1 天前
拓扑排序超详解:原理 + Kahn 贪心算法
python·算法·贪心算法
三品吉他手会点灯1 天前
C语言学习笔记 - 43.运算符与表达式 - 运算符1 - 运算符的分类和简单介绍
c语言·笔记·学习·算法
VkN2X2X4b1 天前
算法复杂度的实验验证与误差分析的技术8
算法
其利天下技术1 天前
风扇灯无刷电机自适应算法实战指南
算法·cocos2d·无刷电机自适应算法·bldc驱动自适应算法·其利无刷电机驱动算法
8Qi81 天前
LeetCode 494:目标和(Target Sum)—— 题解 ✅
算法·leetcode·职场和发展·动态规划·01背包
hujinyuan201601 天前
2026年3月 中国电子学会青少年软件编程(Python)三级考试试卷 真题及答案
java·python·算法