栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

二叉树递归之练习【1】

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

二叉树递归之练习【1】

学习安排根据《代码随想录》leetcode589、590

思路:

递归口诀:

1.确定递归函数参数与返回值类型

2.确定终止条件【边界条件】

3.确定前进条件【递归逻辑】

由官方对N叉树定义知:N个孩子结点以存储在vector容器里

 则,取用孩子结点时不再是root->left 与 root->right!

class Solution {
public:
//确定递归函数的参数与返回值,因为这里是打印所以返回值类型为void
    void traversal(Node*root,vector&v)
    {
//终止条件
        if(root==NULL)return ;

//前进段即递归逻辑
        v.push_back(root->val);
        for(int i=0;ichildren.size();i++)
        traversal(root->children[i],v);
    }
    vector preorder(Node* root) 
    {
//递归调用
        vectorv;
        traversal(root,v);
        return v;
    }
};

 

class Solution {
public:
//确定递归函数的参数与返回值,因为这里是打印所以返回值类型为void
    void traversal(Node*root,vector&v)
    {
//终止条件
        if(root==NULL)return ;

//前进段即递归逻辑
        v.push_back(root->val);
        for(int i=root->children.size()-1;i>=0;i--)
        traversal(root->children[i],v);
    }
    vector postorder(Node* root) 
    {
//递归调用
        vectorv;
        traversal(root,v);
        reverse(v.begin(),v.end());
        return v;
    }
};

思路:

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/780169.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号