Binary Tree Level Order Traversal
来源:互联网 发布:js定义一个json数组 编辑:程序博客网 时间:2024/06/01 07:16
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,#,#,15,7},
3
/ \
9 20
/ \
15 7
return its level order traversal as:
[
[3],
[9,20],
[15,7]
For example:
Given binary tree {3,9,20,#,#,15,7},
3
/ \
9 20
/ \
15 7
return its level order traversal as:
[
[3],
[9,20],
[15,7]
]
思路:返回二叉树层次遍历的结果。要求按层将每层的元素放在一个vector中。最后返回一个vector的vector。
(1)如果root为NULL,直接返回
(2)否则,将root添加到队列que中,这个时候队列中只有一个元素。size记录了每一层的元素个数,然后在一个循环中每次访问size个数的元素。
(3)每访问一个元素的时候,将其添加到当前层的vector中,如果其左右子节点不为NULL,则将左右子节点添加到队列中。
代码如下:
/** * 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>>res; if(!root) return res; queue<TreeNode*>que; que.push(root); while(!que.empty()) { int size=que.size(); vector<int>tmp; for(int i=0;i<size;i++) { TreeNode *top=que.front(); tmp.push_back(top->val); if(top->left) que.push(top->left); if(top->right) que.push(top->right); que.pop(); } res.push_back(tmp); } return res; }};
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
- 读取data/data/ccc.apl(忘了出处)
- 进程、线程及多进程多线程简介
- 使用MessageDigest生成MD5的问题
- 支撑万亿级访问的微博后端是怎么炼成的
- CUDA 和opencv安装问题
- Binary Tree Level Order Traversal
- jQuery .tmpl(), .template()学习
- React Native第一个Demo(1)
- Java中的隐藏和覆盖
- Python 字典详解
- OPENSSL X509证书验证
- Java中 String、StringBuffer 、StringBuilder 总结
- Java基础泛型篇一
- JQuery中ajax处理跨域的三大方式