当前位置: 首页 > article >正文

day18 二叉树遍历总结

二叉树遍历总结

遍历二叉树是指按照一定的顺序遍历二叉树中的每个节点。常见的遍历方式有前序遍历、中序遍历和后序遍历。以下是它们的具体实现:

  1. 前序遍历:按照“根节点-左子树-右子树”的顺序进行遍历。具体实现的步骤如下:

    • 访问根节点
    • 对根节点的左子树进行前序遍历
    • 对根节点的右子树进行前序遍历

    前序遍历的递归实现代码如下:

    void preorder(TreeNode* root) {
        if (root == nullptr) return;
        visit(root);
        preorder(root->left);
        preorder(root->right);
    }
    
  2. 中序遍历:按照“左子树-根节点-右子树”的顺序进行遍历。具体实现的步骤如下:

    • 对根节点的左子树进行中序遍历
    • 访问根节点
    • 对根节点的右子树进行中序遍历

    中序遍历的递归实现代码如下:

    void inorder(TreeNode* root) {
        if (root == nullptr) return;
        inorder(root->left);
        visit(root);
        inorder(root->right);
    }
    
  3. 后序遍历:按照“左子树-右子树-根节点”的顺序进行遍历。具体实现的步骤如下:

    • 对根节点的左子树进行后序遍历
    • 对根节点的右子树进行后序遍历
    • 访问根节点

    后序遍历的递归实现代码如下:

    void postorder(TreeNode* root) {
        if (root == nullptr) return;
        postorder(root->left);
        postorder(root->right);
        visit(root);
    }
    

以上是二叉树的三种遍历方式的递归实现。当然,这些方法也可以通过非递归的方式实现,例如使用栈来模拟遍历过程。


http://www.kler.cn/a/7592.html

相关文章:

  • 利用OpenAI进行测试需求分析——从电商网站需求到测试用例的生成
  • Tensorflow基本概念
  • 单片机智能家居火灾环境安全检测
  • 插入排序——希尔排序
  • 【MySQL 保姆级教学】详细讲解视图--(15)
  • CSS 响应式设计之媒体查询技术
  • ArrayList与LinkList的区别
  • minikube apiserver无法启动问题解决
  • C++并发与多线程笔记八:async、future、packaged_task、promise
  • 刷题记录|Day48 ● 198.打家劫舍 ● 213.打家劫舍II ● 337.打家劫舍III
  • arm系列交叉编译器各版本区别
  • 如何选择理想的三相浪涌保护器?
  • 【Ruby学习笔记】13.Ruby 迭代器及文件的输入与输出
  • 【vSphere | Python】vSphere Automation SDK for Python Ⅲ—— vCenter Datacenter APIs
  • 为什么无法跨centos、ubuntu、rocky linux 发行版本进行系统升级?
  • xinput1_3.dll缺失了如何去修复?xinput1_3.dll解决方法分享
  • 释放AIoT商业价值 | 2023高通广和通智能物联网技术开放日圆满落幕
  • srs流媒体录制视频
  • 22.SSM-JdbcTemplate总结
  • 贯穿设计模式第二话--开闭职责原则
  • 区块链学习笔记(3)BTC协议
  • 运算符重载
  • 亚马逊管理的14条领导力准则
  • C/C++协程编程:解锁并发编程新纪元
  • 【MySQL】了解MySQL的Explain,读这一篇够了( ̄∇ ̄)/
  • 【刷题笔记】笔记三