首页 > 编程知识 正文

二叉树层序遍历c++,二叉树的层次遍历算法

时间:2023-05-06 03:26:14 阅读:15164 作者:4486

/*这个问题考察了层序遍历*的总体思路。 * 1.定义队列q,存储每层节点,并入队到根节点; * 2.定义存储各层次节点值的二维数组* 3.只要队列q不为空,就继续遍历二叉树。 *4.定义vector eachrow,存储每行的节点值,然后从push_back返回all row */class solution { public 3360 vectorvectorintlevelorder * (公共3360 ) if (路线!=nullptr(q.push_back )路由); //定义存储各层各节点值vectorvectorint allRow的二维数组; /只要队列q不为空,就继续遍历二叉树。 while (! q.empty () )定义vector eachRow,存储每行的节点值,并向allRow vectorint eachRow推送_ back; //队列中包含每行的节点,因此q.size () int size=q.size ) ); for(intI=0; i size; I )//获取第一个节点地址,TreeNode* tmp=q.front ); q.pop_front (; 保存在eachRow中的eachrow.push_back(tmp-val ); //对于刚离开团队的节点,将下一行的节点转换为if(tmp-left!=nullptr () q.push_back ) ) tmp-left; (if ) tmp-right!=nullptr () q.push_back ) ) tmp-right; }allrow.push_back(eachrow ); }返回全部行; }; 层序相似主题:一天解决五个问题不是梦

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