Binary Tree Level Order Traversal
来源:互联网 发布:知乎 宋慈 编辑:程序博客网 时间:2024/05/01 11:05
Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).
For example:
Given binary tree [3,9,20,null,null,15,7]
,
3 / \ 9 20 / \ 15 7
return its level order traversal as:
[ [3], [9,20], [15,7]]
这道题其实不难,用到队列是肯定的。还有就是要想需要几层循环,看到输出应该是两层循环。博主想过只用一层循环,以队列是否为空为循环标准,但是队列的每次循环都会push指针,造成冲突,所以博主就先记下初始时的队列长度。
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: vector<vector<int>> levelOrder(TreeNode* root) { vector<vector<int>> result; queue<TreeNode*> q1; vector<int> x; int num=0; TreeNode* tmp; if(root==NULL) return result; q1.push(root); while(!q1.empty()){ num=q1.size(); //记下初始队列长度 for(int i=0;i<num;i++){ //只循环num次 tmp=q1.front(); if(tmp==NULL){ q1.pop(); continue; } q1.pop(); x.push_back(tmp->val); if(tmp->left!=NULL)q1.push(tmp->left); if(tmp->right!=NULL)q1.push(tmp->right); } result.push_back(x); x.resize(0); } return result; }};
0 0
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- 容器
- MATLAB元胞数组
- CVPR 2017-01-17
- linux下vi命令大全
- Java通信-仿QQ聊天项目
- Binary Tree Level Order Traversal
- Maven多项目依赖配置,多maven项目聚合的实例
- 【BootStrap】简单聊一聊CSS全局样式和表格样式-附有源码
- 蛇形填数
- 小程序 第一弹 hello world
- hadoop学习笔记
- Course Schedule/Course Schedule II
- transient关键字及Serializable的序列化与反序列化
- 获取一周的星期一日期和一个月的第一天星期