字典

前序遍历中序遍历后序遍历

二叉树的前序、中序和后序遍历是访问树中所有节点的三种核心方式,其根本区别在于访问 根节点 的时机:前序遍历先访问根节点,中序遍历在左右子树之间访问根节点,后序遍历最后访问根节点。这种顺序差异不仅决定了实现逻辑,也影响了它们的应用场景。

一、遍历规则与递归实现

三种遍历的核心逻辑可以用“口诀”概括,其递归实现仅需调整访问根节点的位置:

 

遍历方式 顺序口诀 递归实现代码(Python)
前序遍历 根 → 左 → 右 def pre_order(root):
  if root:
    print(root.val)
    pre_order(root.left)
    pre_order(root.right)
中序遍历 左 → 根 → 右 def in_order(root):
  if root:
    in_order(root.left)
    print(root.val)
    in_order(root.right)
后序遍历 左 → 右 → 根 def post_order(root):
  if root:
    post_order(root.left)
    post_order(root.right)
    print(root.val)

 

示例:对于根节点为 1、左子节点 2、右子节点 3 的二叉树(1->2->3):

前序遍历结果:1, 2, 3(先根,再左,后右)

中序遍历结果:2, 1, 3(先左,再根,后右)

后序遍历结果:2, 3, 1(先左,再右,后根)

二、非递归实现(基于栈)

递归遍历简洁但可能受限于栈深度,非递归实现需用栈模拟递归过程,核心是控制节点入栈和出栈的时机:

1. 前序遍历(根→左→右)

思路:先访问根节点,再将右子树入栈,最后左子树入栈(利用栈的 FILO 特性确保左子树先处理)。

PYTHON

 

 

前的基本解释

基本字义

qián(ㄑ一ㄢˊ)

⒈  指空间,人面所向的一面;房屋等正门所向的一面;家具等靠外的一面,与“后”相对:前面。前边。前方。面前。前进。前程。

⒉  指时间,过去的,往日的,与“后”相对:以前。前人。前此。前科。前嫌。前言。前车之鉴。

⒊  顺序在先的:前五名。

⒋  向前行进:勇往直前。

汉英互译

former、forward、front、preceding、restrain

相关字词

造字法

会意

English

in front, forward; preceding

汉语字典

偏旁部首

笔画查字

汉字结构