LintCode 二叉树的层次遍历
2023-09-14 09:10:06 时间
中等 二叉树的层次遍历
33%
通过
给出一棵二叉树,返回其节点值的层次遍历(逐层从左往右訪问)
您在真实的面试中是否遇到过这个题?Yes
例子
给出一棵二叉树 {3,9,20,#,#,15,7},
3
/ \
9 20
/ \
15 7
返回它的层次遍历为:
[
[3],
[9,20],
[15,7]
]
挑战
仅仅使用一个队列去实现它
仅仅用了一个队列,用到了两个计数器,一个记录这一层全然二叉树应该有的节点,还有一个记录这一层缺失的节点
/** * Definition of TreeNode: * class TreeNode { * public: * int val; * TreeNode *left, *right; * TreeNode(int val) { * this->val = val; * this->left = this->right = NULL; * } * } */ class Solution { /** * @param root: The root of binary tree. * @return: Level order a list of lists of integer */ public: vector<vector<int>> levelOrder(TreeNode *root) { // write your code here vector<vector<int>> res; if(root == nullptr) { return res; } vector<int> temp; queue<TreeNode*> q; q.push(root); int i = 1;// points every level int j = 0;// lost point every level while(!q.empty()) { TreeNode *p = q.front(); q.pop(); if (p==nullptr) { ++j; } else { temp.push_back(p->val); q.push(p->left); q.push(p->right); } if (i == (temp.size() + j) && temp.size()!=0) { res.push_back(temp); temp.clear(); i*=2; j*=2; } } return res; } };
相关文章
- Java实现 LeetCode 111 二叉树的最小深度
- Java实现 LeetCode 103 二叉树的锯齿形层次遍历
- Java实现 LeetCode 107 二叉树的层次遍历 II(二)
- Java实现 LeetCode 107 二叉树的层次遍历 II(二)
- 二叉树的一些算法<未完>
- 算法练习之二叉树的最大深度,二叉树的层次遍历 II
- 每日一道 LeetCode (23):二叉树的层次遍历 II
- LeetCode:144_Binary Tree Preorder Traversal | 二叉树的前序遍历 | Medium
- LeetCode:145_Binary Tree Postorder Traversal | 二叉树后序遍历 | Hard
- LeetCode(102):二叉树的层次遍历
- 【二叉树遍历】二叉树的四种遍历方式(先序遍历、中序遍历、后序遍历、层次遍历)
- 897. 递增顺序搜索树-中序遍历二叉树
- 958. 二叉树的完全性检验-双队列层次遍历-力扣双百代码(检验二叉树是否是完全二叉树)
- 106. 从中序与后序遍历序列构造二叉树
- 层次遍历二叉树
- 重拾算法(3)——用458329个测试用例全面测试二叉树和线索二叉树的遍历算法
- 二叉树的存储与遍历
- wiki 3143 二叉树的前序、中序及后序遍历
- 二叉树各种遍历序列之间的转换总结[转载]
- 二叉树层序遍历
- go语言|数据结构:二叉树可视化(制作svg格式树形图)
- 二叉树专题02