题目 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 考点 1.广度优先遍历 2.binary tree 3.queue 4.deque 思路 按层打印:8.6.10.5.7.9.11 用STL的deque完成两端进出的操作. 规律: 1.从头节点开始放入容器. 2.每次打印一个节点时,如果该节点有子节点,将其左子节点.右子节点依次放入容器内. 3.接下来打印deque的front().直到deque里面没有值. 代码 newcoder /* struct TreeNode { int…
// 面试题32(二):分行从上到下打印二叉树 // 题目:从上到下按层打印二叉树,同一层的结点按从左到右的顺序打印,每一层 // 打印到一行. #include <cstdio> #include "BinaryTree.h" #include <queue> void Print(BinaryTreeNode* pRoot) { if (pRoot == nullptr) return; std::queue<BinaryTreeNode*> n…
// 面试题32(一):不分行从上往下打印二叉树 // 题目:从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印. #include <iostream> #include "BinaryTree.h" #include <deque> void PrintFromTopToBottom(BinaryTreeNode* pRoot) { if (pRoot == nullptr) return; std::deque<BinaryTreeN…
原创文章,转载请注明出处! 本题牛客网地址 博客文章索引地址 博客文章中代码的github地址 1.题目 从上往下打印出二叉树的每个节点,同层节点从左至右打印.例如: 图  不分行从上往下按层打印二叉树的顺序为8-6-10-5-7-9-11 2.思路 本题使用队列做为辅助容器,利用队列的先进先出策略,按层打印二叉树.举例:首先,将根节点压入队列:然后,先将队首元素放入存储遍历结果的vector中,再判断队首节点是否有左右子节点,如果有左右子节点,则将做右子节点压入队列,队首元素弹出队首,循环执行…
地址 https://www.acwing.com/problem/content/description/41/ 从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印. 样例 输入如下图所示二叉树[, , , , , null, null, null] / \ / / 输出:[, , , , ] bfs典型例题 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *l…
题目 给定一个二叉树,返回其按层次遍历的节点值. (即逐层地,从左到右访问所有节点). 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层次遍历结果: [ [3], [9,20], [15,7] ] 考点 思路 代码 newcoder /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : va…
地址 https://www.acwing.com/problem/content/description/42/ 题目描述从上到下按层打印二叉树,同一层的结点按从左到右的顺序打印,每一层打印到一行. 样例 样例 输入如下图所示二叉树[, , , , , null, null, null] / \ / / 输出:[[], [, ], [], []] 算法1在上一题的基础上修改代码 使用null指针作为分割注意边界条件 C++ 代码 /** * Definition for a binary tr…
题目: 从上到下按层打印二叉树,同一层的节点按照从左到右的顺序打印,每一层打印到一行. /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } };*/ class Solution { public: vector<vector<int> > Print(TreeNode* r…
题目描述 从上到下按层打印二叉树,同一层结点从左至右输出.每一层输出一行.   题解: 使用BFS,按层打印即可 class Solution { public: vector<vector<int> > Print(TreeNode* pRoot) { vector<vector<int>>res; BFS(pRoot, res); return res; } void BFS(TreeNode *root, vector<vector<int…
void BFSLayer(BinaryTreeNode* pRoot) { if(pRoot==nullptr) return; queue<BinaryTreeNode*> pNode; ,nextLayer=; pNode.push(pRoot); while(!pNode.empty()) { BinaryTreeNode* pFront=pNode.front(); cout<<pFront->m_Value<<' '; pNode.pop(); cur…