6.1二叉树的递归遍历

简介: 6.1二叉树的递归遍历

二叉树的递归遍历包括:前、后、中序遍历的递归写法。

一、方法论

递归算法三要素:

  • 确定递归函数的参数和返回值
void traversal(TreeNode* cur, vector<int>& vec)//当前指针和数组
  • 确定终止条件
if (cur == NULL) return;
  • 确定单层递归逻辑

前序遍历是中->左->右的顺序,所以单层递归的逻辑就是先取中节点的数值,在处理左子树和右子树

vec.push_back(cur->val);//中
traversal(cur->left,vec);//左
traversal(cur->right,vec);//右

二、前序遍历完整代码

class Solution{
    public:
      void traversal(TreeNode* cur,vector<int>& vec)
        {
            if(cur==NULL) return;
            vec.push_back(cur->val);//中
      traversal(cur->left,vec);//左
      traversal(cur->right,vec);//右
        }
    
      vector<int> preorderTraversal(TreeNode * root)
        {
            vector<int> result;//result是数组
            traversal(root,result);
            return result;
        }
}

三、中序遍历完整代码

class Solution{
    public:
      void traversal(TreeNode* cur,vector<int>& vec)
        {
            if(cur==NULL) return;
      traversal(cur->left,vec);//左
            vec.push_back(cur->val);//中
      traversal(cur->right,vec);//右
        }
    
      vector<int> preorderTraversal(TreeNode * root)
        {
            vector<int> result;//result是数组
            traversal(root,result);
            return result;
        }
}

四、后序遍历完整代码

class Solution{
    public:
      void traversal(TreeNode* cur,vector<int>& vec)
        {
            if(cur==NULL) return;
      traversal(cur->left,vec);//左
      traversal(cur->right,vec);//右
             vec.push_back(cur->val);//中
        }
    
      vector<int> preorderTraversal(TreeNode * root)
        {
            vector<int> result;//result是数组
            traversal(root,result);
            return result;
        }
}

五、题型

目录
相关文章
|
3月前
|
算法
01_二叉树的递归遍历
01_二叉树的递归遍历
|
7月前
|
算法
二叉树的递归遍历和非递归遍历
二叉树的递归遍历和非递归遍历
32 0
|
7月前
递归遍历二叉树
递归遍历二叉树的思路
108 0
|
7月前
|
数据格式
树结构练习——排序二叉树的中序遍历
树结构练习——排序二叉树的中序遍历
|
7月前
|
Linux
求二叉树的先序遍历
求二叉树的先序遍历
|
7月前
|
算法 Java 程序员
【算法训练-二叉树 一】【遍历二叉树】前序遍历、中序遍历、后续遍历、层序遍历、锯齿形层序遍历、二叉树右视图
【算法训练-二叉树 一】【遍历二叉树】前序遍历、中序遍历、后续遍历、层序遍历、锯齿形层序遍历、二叉树右视图
70 0
|
算法 C语言
【递归调用在二叉树中的应用】前序遍历、中序遍历、后序遍历、求二叉树叶子结点及复制二叉树的C语言实现
【递归调用在二叉树中的应用】前序遍历、中序遍历、后序遍历、求二叉树叶子结点及复制二叉树的C语言实现
157 0
【递归调用在二叉树中的应用】前序遍历、中序遍历、后序遍历、求二叉树叶子结点及复制二叉树的C语言实现
先序、中序、后序遍历确定唯一树
快速学习先序、中序、后序遍历确定唯一树
先序、中序、后序遍历确定唯一树