说在前面

欢迎朋友们来到我的博客。
今天我们的重点是,N叉树的遍历
今天,博主就带来两道经典的题目,领着大家理解N叉树的前序遍历和后序遍历!
当然,还想学习其它算法的朋友们,可以通过订阅博主的算法专栏,或者数据结构专栏持续学习!

当然,博主这里还把二叉树的四种遍历方式的汇总博客提供给大家,供大家学习,两者的思路是一样的!

题目:


博主给大家的话

那么这里博主先安利一下一些干货满满的专栏啦!

数据结构专栏:手撕数据结构 这里包含了博主很多的数据结构学习上的总结,每一篇都是超级用心编写的,有兴趣的伙伴们都支持一下吧!
算法专栏:算法 这里可以说是博主的刷题历程,里面总结了一些经典的力扣上的题目,和算法实现的总结,对考试和竞赛都是很有帮助的!
力扣刷题专栏:跟着博主刷Leetcode 想要冲击ACM、蓝桥杯或者大学生程序设计竞赛的伙伴,这里面都是博主的刷题记录,希望对你们有帮助!
C的深度解剖专栏:C语言的深度解剖 想要深度学习C语言里面所蕴含的各种智慧,各种功能的底层实现的初学者们,相信这个专栏对你们会有帮助的!

N叉树的前序遍历

题目描述

代码实现

其实思路和二叉树前序遍历是一样的,先遍历自己的节点,在遍历孩子节点,遇到空返回,很简单。

class Solution {
private:
vector<int>ret;
void dfs(Node*root){
if(root==nullptr){
return;
}
ret.push_back(root->val);//先遍历自己节点
//再遍历孩子节点,和二叉树的区别就是,这里是遍历一个指针数组而已。
for(int i=0;i<root->children.size();i++){
dfs(root->children[i]);
}
}
public:
vector<int> preorder(Node* root) {
dfs(root);
return ret;
}
};

N叉树的后序遍历

题目描述

代码实现

class Solution {
private:
vector<int>ret;
void dfs(Node*root){
if(root==nullptr){
return;
}
//先遍历孩子节点
for(int i=0;i<root->children.size();i++){
dfs(root->children[i]);
}
//再遍历自身节点
ret.push_back(root->val); }
public:
vector<int> postorder(Node* root) {
dfs(root);
return ret;
}
};

尾声

相信大家看到这里,已经对N叉树的DFS遍历有了一定的认识和了解了。这些都是我们学习数据结构最最基础的东西,也是必不可少的知识,我们必须掌握。如果你感觉这篇文章对你有帮助的话,不要忘了点赞关注和收藏哦!

【树】N叉树的遍历【力扣589、力扣590】超详细的解释和注释的更多相关文章

  1. IT公司100题-9-判断整数序列是不是二元查找树的后序遍历结果

    问题描述: 输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果. 如果是返回true,否则返回false. 例如输入4, 8, 6, 12, 16, 14, 10,由于这一整数序列是如下树 ...

  2. C++树的插入和遍历(关于指针的指针,指针的引用的思考)

    题目 写一个树的插入和遍历的算法,插入时按照单词的字典顺序排序(左边放比它"小"的单词,右边放比它"大"的单词),对重复插入的单词进行计数. 程序源码 #inc ...

  3. python数据结构之树(二叉树的遍历)

    树是数据结构中非常重要的一种,主要的用途是用来提高查找效率,对于要重复查找的情况效果更佳,如二叉排序树.FP-树. 本篇学习笔记来自:二叉树及其七种遍历方式.python遍历与非遍历方式实现二叉树 介 ...

  4. 6.二元查找树的后序遍历结果[PostOrderOfBST]

    [题目] 输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果.如果是返回true,否则返回false. 例如输入5.7.6.9.11.10.8,由于这一整数序列是如下树的后序遍历结果: 8 ...

  5. java:数据结构(四)二叉查找树以及树的三种遍历

    @TOC 二叉树模型 二叉树是树的一种应用,一个节点可以有两个孩子:左孩子,右孩子,并且除了根节点以外每个节点都有一个父节点.当然这种简单的二叉树不能解决让树保持平衡状态,例如你一直往树的左边添加元素 ...

  6. 树————N叉树的层序遍历

    思想: 使用队的思想,将每一层的节点放入队列中,依次弹出,同时将其children放入队列. c++ /* // Definition for a Node. class Node { public: ...

  7. LeetCode刷题笔记-BFS-二叉树层次遍历

    题目描述: 给定一个二叉树,返回其节点值自底向上的层次遍历. (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ ...

  8. 树的三种遍历方式(C语言实现)

    //************************************************************************* // [前序]遍历算法 //二叉树不空,先访问根 ...

  9. [LeetCode] N-ary Tree Level Order Traversal N叉树层序遍历

    Given an n-ary tree, return the level order traversal of its nodes' values. (ie, from left to right, ...

  10. Hdu1805-Expression(表达式树模版题+层序遍历树+栈的基本应用)

    2018-11-23-02:27:37 原题链接 题目描述: 题目一目了然. 本题思路: 本题很容易能想到是构建表达式树然后按照层序逆序输出即可. AC代码: #include <cstdio& ...

随机推荐

  1. 云工作流 CloudFlow 重磅发布,流程式开发让云上应用构建更简单

    为了让企业和开发者更快速.便捷地进行云上开发,阿里云重磅发布云工作流(CloudFlow),它是一款强大的面向开发者的流程编排开发工具,全托管.高并发.高可用,帮助用户简化和自动化复杂的云上业务流程和 ...

  2. iview 将Modal抽取成组件并控制Modal的显示隐藏

    开发中遇到Modal弹出框的内容太多,就想把Modal单独分装成一个组件,但是发现封装成组件后Modal的关闭和打开有问题.如下方法可以解决这个问题. 父级页面: <PriceInfodModa ...

  3. 线段树 hdu 4027

    ***又是超时的问题,当一个区间全是1时,再去开方和不开方是一样的,所以在这一步不需要再往底层递归了*** #include <iostream> #include <cstdio& ...

  4. 有了Composition API后,有些场景或许你不需要pinia了

    前言 日常开发时有些业务场景功能很复杂,如果将所有代码都写在一个vue组件中,那个vue文件的代码量可能就几千行了,维护极其困难.这时我们就需要将其拆分为多个组件,拆完组件后就需要在不同组件间共享数据 ...

  5. 程序&命名-执行环境

    开发程序执行环境 系统级别 -- 编译器或解释器 程序级别 -- 命令行参数.配置文件 执行级别 -- 进程.线程.协程运行时上下文(树(命名空间 -- 函数-局部变量.包或模块-全局变量)) 命令行 ...

  6. [转帖]INSERT IGNORE INTO 与 INSERT INTO

    INSERT IGNORE INTO 会忽略数据库中已经存在 的数据,如果数据库没有数据,就插入新的数据,如果有数据的话就跳过当前插入的这条数据.这样就可以保留数据库中已经存在数据,达到在间隙中插入数 ...

  7. [转帖]TiDB BR 备份至 MinIO S3 实战

    https://tidb.net/blog/3a31d41d#3.%E9%83%A8%E7%BD%B2%20MinIO%20S3%20%E5%8F%8A%E5%A4%87%E4%BB%BD%E6%81 ...

  8. [转帖]七. PostgreSQL逻辑结构(1)—数据库和模式

    https://www.jianshu.com/p/ee8b1bdfdb19 在PostgreSQL里,逻辑结构从高到底依次是:数据库.模式(又叫架构).表.行.当我们打开PostgreSQL官方自带 ...

  9. parquet极简学习

    parquet极简学习 摘要 parquet的概念: Parquet文件是一种列式存储文件格式,广泛应用于大数据处理框架, 如Apache Hadoop和Apache Spark. 它通过将数据组织成 ...

  10. rpm包方式安装oracle21c

    下载相关依赖包 https://yum.oracle.com/repo/OracleLinux/OL8/appstream/x86_64/index.htmlhttps://www.oracle.co ...