Maoyl's blog Maoyl's blog
首页
  • 前端基础

    • HTML
    • CSS
    • CSS动画
    • JavaScript文章
    • stylus
  • 性能优化

    • 《性能优化》笔记
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《JavaScript高级程序设计》笔记
    • 《ES6 教程》笔记
    • 《JavaScript设计模式》笔记
    • 《TypeScript 从零实现 axios》
    • TypeScript笔记
    • JS设计模式总结笔记
  • 前端框架

    • Vue相关
    • React相关
  • 前端监控

    • 前端监控简介
  • 学习笔记

    • 《Vue》笔记
    • 《React》笔记
    • 小程序学习笔记
  • 后端基础

    • Nodejs
  • 学习笔记

    • 数据结构
  • 技术文档
  • GitHub技巧
  • 博客搭建
  • 网页性能
  • 学习笔记

    • 《Git》学习笔记
    • 《Vim》学习笔记
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

maoyln

日日行,不怕千万里
首页
  • 前端基础

    • HTML
    • CSS
    • CSS动画
    • JavaScript文章
    • stylus
  • 性能优化

    • 《性能优化》笔记
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《JavaScript高级程序设计》笔记
    • 《ES6 教程》笔记
    • 《JavaScript设计模式》笔记
    • 《TypeScript 从零实现 axios》
    • TypeScript笔记
    • JS设计模式总结笔记
  • 前端框架

    • Vue相关
    • React相关
  • 前端监控

    • 前端监控简介
  • 学习笔记

    • 《Vue》笔记
    • 《React》笔记
    • 小程序学习笔记
  • 后端基础

    • Nodejs
  • 学习笔记

    • 数据结构
  • 技术文档
  • GitHub技巧
  • 博客搭建
  • 网页性能
  • 学习笔记

    • 《Git》学习笔记
    • 《Vim》学习笔记
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 第一讲 基本概念

  • 第二讲 线性结构

  • 第三讲 树(上)

    • 树与树的表示
    • 二叉树及存储结构
    • 二叉树的遍历
      • 二叉树的遍历
        • 前序遍历
        • 中序遍历
        • 后序遍历
        • 层序遍历
      • 总结
  • 第四讲 树(中)

  • 第五讲 树(下)

  • 第六讲 图(上)

  • 《数据结构》学习笔记
  • 第三讲 树(上)
maoyln
2024-07-05
目录

二叉树的遍历

# 二叉树的遍历

二叉树的遍历有多种方式,主要包括:

  1. 前序遍历(Pre-order Traversal):根节点 -> 左子树 -> 右子树
  2. 中序遍历(In-order Traversal):左子树 -> 根节点 -> 右子树
  3. 后序遍历(Post-order Traversal):左子树 -> 右子树 -> 根节点
  4. 层序遍历(Level-order Traversal):按层级顺序遍历

# 前序遍历

function preOrderTraversal(node) {
  if (node === null) return;
  console.log(node.value);
  preOrderTraversal(node.left);
  preOrderTraversal(node.right);
}

preOrderTraversal(root);
1
2
3
4
5
6
7
8

# 中序遍历

function inOrderTraversal(node) {
  if (node === null) return;
  inOrderTraversal(node.left);
  console.log(node.value);
  inOrderTraversal(node.right);
}

inOrderTraversal(root);
1
2
3
4
5
6
7
8

# 后序遍历

function postOrderTraversal(node) {
  if (node === null) return;
  postOrderTraversal(node.left);
  postOrderTraversal(node.right);
  console.log(node.value);
}

postOrderTraversal(root);
1
2
3
4
5
6
7
8

# 层序遍历

function levelOrderTraversal(node) {
  if (node === null) return;
  const queue = [node];
  while (queue.length > 0) {
    const current = queue.shift();
    console.log(current.value);
    if (current.left !== null) queue.push(current.left);
    if (current.right !== null) queue.push(current.right);
  }
}

levelOrderTraversal(root);
1
2
3
4
5
6
7
8
9
10
11
12

# 总结

总结

二叉树是一种重要的数据结构,具有广泛的应用。通过链式存储和顺序存储,我们可以有效地表示和操作二叉树。二叉树的遍历方法有多种,包括前序遍历、中序遍历、后序遍历和层序遍历,每种方法都有其特定的应用场景。希望这些示例能帮助你更好地理解二叉树及其定义。如果有任何问题,请随时提问!

编辑 (opens new window)
#数据结构
上次更新: 2025/04/18, 01:42:12
二叉树及存储结构
二叉搜索树

← 二叉树及存储结构 二叉搜索树→

最近更新
01
GSAP动画库——如何高效写动画
04-17
02
自适应方案PxToRem
09-10
03
性能优化-requestAnimationFrame
08-10
更多文章>
Theme by Vdoing | Copyright © 2019-2025 备案号:京ICP备19058102号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式