算法训练:Binary Tree Level Order Traversal
来源:互联网 发布:网络运营需要什么技术 编辑:程序博客网 时间:2024/06/05 18:47
题目链接: https://leetcode.com/problems/binary-tree-level-order-traversal/#/description
题目描述:
给定一棵二叉树,要求返回每层节点的值(从左往右,一层一层)。
例如,给定的二叉树[3,9,20,null,null,15,7]为,返回值为[[3],[9,20],[15,7]]
解题思路:
采用BFS的思想进行遍历树,定义一个变量,用来记录每层节点的个数,党每层访问结束后,将保存的一层的节点的值的数组插入到结果集中。
vector<vector<int>> levelOrder(TreeNode* root) { vector<int> pair; vector<vector<int>> result; vector<TreeNode*> s; s.push_back(root); int count=1;//每层的节点个数 while(!s.empty()){ TreeNode* p=s.front(); pair.push_back(p->val); s.erase(s.begin()); count--; if(p->left!=NULL){ s.push_back(p->left); } if(p->right!=NULL){ s.push_back(p->right); } if(!pair.empty()&&count==0){ result.push_back(pair); pair.clear(); count=s.size(); } } return result; }
运行结果:
Your Input
[3,9,20,6,null,15,7,8]
Your answer
[[3],[9,20],[6,15,7],[8]]
Expected answer
[[3],[9,20],[6,15,7],[8]]
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
- php根据背景图片深浅加水印
- Android Scroller与computeScroll的调用机制关系
- Elastalert-基于Elasticsearch层面的监控告警框架
- 利用awk去除重复行
- 鼠标操作
- 算法训练:Binary Tree Level Order Traversal
- android自定义的弧形进度条和圆形进度条-SemicircleProgress
- UIImagePickerController
- JavaSE 基础知识总结 ---面向对象之前
- uio.c 中的初始化
- Error querying database. Cause: java.sql.SQLException: 无法从套接字读取更多的数据
- AndroidStudio关联源代码
- DataTransfer对象
- Mybatis的ResultMap的使用