首页 > 编程知识 正文

bfs遍历是什么意思,若二叉树的先序遍历为cabfedg

时间:2023-05-05 18:07:32 阅读:14389 作者:2824

二叉树的层序遍历是遍历二叉树的另一种方法,顾名思义,是分层遍历二叉树。

题目描述

(来源: leet代码)

想法

层序遍历需要分层搜索二叉树,并将搜索到的节点添加到结果中。 假设获得了某一层中的所有节点,并且该层中的节点已经按照从左到右的顺序存储在我们维持的队列(queue )中,那么假设当前层中有n个节点(n=queue.size () ) )

具体实现

首先,将根节点作为第一层

vectorvectorintlevelorder (treenode * root ) {vectorvectorint res; if (! 根(返回RES; ) }队列输入q; //用于我们维护的存储层节点的队列q.push (根); //根节点位于第一层的while (! q.empty () ) {int n=q.size; //获得当前层上有多少个节点RES.push _ back (vector int ); for(intI=0; i n; I ) )//有几个节点就有几个自动节点=q.front ); q.pop (; res.back ().push_back ) )根val; //当前层节点放入答复if (节点左) q.push (节点左); if (节点光) q.push )节点光; } }返回RES; }请注意,与传统的宽度优先搜索不同,传统的宽度优先搜索一次只能扩展一个节点,但在遍历层序二叉树的过程中,我们每次扩展一层节点可以使算法更简洁。

如果有不正当行为的话,请告诉我!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。