首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >二叉树的递归遍历

二叉树的递归遍历

作者头像
十二.
发布2025-10-22 14:35:16
发布2025-10-22 14:35:16
640
举报

先强调一下,本篇博客,对知晓一点二叉树的人会更友好

1、基础

二叉树的遍历方式,分为深度优先遍历广度优先遍历

深度优先遍历

  • 前序遍历(递归法,迭代法) – 中 左 右
  • 中序遍历(递归法,迭代法) – 左 中 右
  • 后序遍历(递归法,迭代法) – 左 右 中

广度优先遍历

  • 层次遍历(迭代法)

以上描述的是,各种遍历方式

2、递归遍历
递归方法

说到递归,想写好,要记清楚几个点 1. 确定参数 2. 明确结束条件 3. 确定单层递归的逻辑(哪些需进行递归)

如何用递归进行遍历

好了,上代码

代码语言:javascript
复制
	class TreeNode { // 先手写一个节点
	      int val;
	      TreeNode *left;
	      TreeNode *right;
	      TreeNode() : val(0), left(nullptr), right(nullptr) {}
	      TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
	      TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
	}
// 递归遍历

    void Traversal(TreeNode *root, vector<int> &result){// 1.递归传参
        // 2.递归结束条件
        if(root == nullptr){
            return;
        }
        // 3.单层循环条件 ---      前序遍历 中左右
            result.push_back(root->val); // 中
            Traversal(root->left,result); //左
            Traversal(root->right,result); //右
    }
 // 一个函数,用于放入一组二叉树,与返回遍历后的数据
   vector<int> preorderTraversal(TreeNode* root) {
         vector<int> result;
         Traversal(root,result);
         return result; // 返回遍历后的数据
     }

以上前序遍历 中序遍历后续遍历 只需要改动以上一段代码的顺序

代码语言:javascript
复制
        // 单层循环条件 ---      前序遍历 中左右
            result.push_back(root->val); // 中
            Traversal(root->left,result); //左
            Traversal(root->right,result); //右
        
        // 单层循环条件 ---      中序遍历 左中右
            traversal(root->left,result);  // 左
            result.push_back(root->val);   // 中
            traversal(root->right,result); // 右
        
        // 单层循环条件 ---      后序遍历 左右中
            Traversal(root->left,result); // 左
            Traversal(root->right,result);// 右
            result.push_back(root->val);  // 中
    }

ok啦,本次分享就到这里哦,希望大家有收获。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-09-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、基础
  • 2、递归遍历
    • 递归方法
    • 如何用递归进行遍历
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档