Leetcode: Binary Tree Level Order Traversal
来源:互联网 发布:linux安装oracle9i 编辑:程序博客网 时间:2024/06/01 16:15
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]]
两个队列可以解决。
/** * Definition for binary tree * 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*> first, second; first.push(root); TreeNode *cur = NULL; vector<int> v; while (!first.empty()) { while (!first.empty()) { cur = first.front(); first.pop(); if (cur != NULL) { v.push_back(cur->val); second.push(cur->left); second.push(cur->right); } } if (!v.empty()) { result.push_back(v); v.clear(); } while (!second.empty()) { cur = second.front(); second.pop(); if (cur != NULL) { v.push_back(cur->val); first.push(cur->left); first.push(cur->right); } } if (!v.empty()) { result.push_back(v); v.clear(); } } return result; }};=========================第二次==================
一个队列,用NULL来分割。
/** * Definition for binary tree * 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*> nodes; vector<int> level; TreeNode *cur = NULL; // Use NULL as level seperator nodes.push(root); nodes.push(NULL); while (!nodes.empty()) { cur = nodes.front(); nodes.pop(); if (cur != NULL) { if (cur->left != NULL) { nodes.push(cur->left); } if (cur->right != NULL) { nodes.push(cur->right); } level.push_back(cur->val); } else { if (!level.empty()) { result.push_back(level); level.clear(); nodes.push(NULL); } } } return result; }};
0 0
- LeetCode[Tree]: Binary Tree Level Order Traversal
- *(leetcode) Binary Tree Level Order Traversal (tree)
- [leetcode][tree] Binary Tree Level Order Traversal
- LeetCode: Binary Tree Level Order Traversal
- LeetCode: Binary Tree Zigzag Level Order Traversal
- LeetCode: Binary Tree Level Order Traversal II
- [LeetCode]Binary Tree Level Order Traversal
- [LeetCode]Binary Tree Level Order Traversal II
- [LeetCode]Binary Tree Zigzag Level Order Traversal
- LeetCode Binary Tree Level Order Traversal
- LeetCode Binary Tree Level Order Traversal II
- LeetCode Binary Tree Zigzag Level Order Traversal
- [Leetcode] Binary Tree Level Order Traversal
- [Leetcode] Binary Tree Level Order Traversal II
- [Leetcode] Binary Tree Zigzag Level Order Traversal
- Leetcode: Binary Tree Zigzag Level Order Traversal
- LeetCode Binary Tree Level Order Traversal
- LeetCode Binary Tree Level Order Traversal II
- 系统学习jQuery.核心知识.局部.jQuery操作.DOM操作.删除节点
- EGOTableViewRefresh下拉刷新
- 3D游戏开发之基础建模
- 选择的烦恼
- 浅谈Android应用性能之内
- Leetcode: Binary Tree Level Order Traversal
- 搭建db2数据库多分区
- 利用socat来测试echo服务器和客户端
- HELLOWORLD
- 教你如何迅速秒杀掉:99%的海量数据处理面试题
- tofel词汇
- Python学习笔记(十八)----Python 字典(Dictionary)
- 我的2013这一年 -- 唯一关键词 变化
- GoLang之Concurrency再讨论