LeetCode OJ:Binary Tree Level Order Traversal
来源:互联网 发布:sql order by limit 1 编辑:程序博客网 时间:2024/05/18 03:26
Binary Tree Level Order Traversal
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]]
confused what "{1,#,2,3}"
means? > read more on how binary tree is serialized on OJ.
/** * 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; if(!root)return result; vector<int> t; int curLev=1; int nextLev=0; queue<TreeNode *> que; que.push(root); while(!que.empty()){ TreeNode *cur=que.front(); que.pop(); t.push_back(cur->val); if(cur->left){ nextLev++; que.push(cur->left); } if(cur->right){ nextLev++; que.push(cur->right); } if(--curLev==0){ result.push_back(t); t.clear(); curLev=nextLev; nextLev=0; } } return result; }};
递归版
/** * 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; traverse(root,1,result); return result; } void traverse(TreeNode *root,size_t level,vector<vector<int>> &result){ if(!root)return; if(level>result.size()) result.push_back(vector<int>()); result[level-1].push_back(root->val); traverse(root->left,level+1,result); traverse(root->right,level+1,result); }};
0 0
- LeetCode OJ:Binary Tree Level Order Traversal
- LeetCode OJ - Binary Tree Level Order Traversal
- LeetCode OJ Binary Tree Level Order Traversal
- LeetCode OJ:Binary Tree Level Order Traversal II
- LeetCode OJ:Binary Tree Zigzag Level Order Traversal
- LeetCode OJ - Binary Tree Zigzag Level Order Traversal
- LeetCode OJ Binary Tree Zigzag Level Order Traversal
- LeetCode OJ Binary Tree Level Order Traversal II
- leetcode OJ java Binary Tree Level Order Traversal
- <LeetCode OJ> 103. Binary Tree Zigzag Level Order Traversal
- Leetcode OJ 102 Binary Tree Level Order Traversal [Medium]
- 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
- 【openCV】openCV在Ubuntu下安装
- Qt中在QLabel上载入图片后在上面画矩形框的方法
- Mac下安装使用Google ProtoBuffer
- SVN用法总结
- 现代编程语言用什么语言写成?
- LeetCode OJ:Binary Tree Level Order Traversal
- tcp 连接的11种状态–转载
- 微信理财今日上线:收益最高,你心动了吗?
- jquerymobile常用data属性
- 成功企业家的几大特质
- poj 1062 昂贵的聘礼 dijkstra
- Struts2-第四篇-Processing Forms
- Ubuntu12.04+OpenERP7.0安装笔记
- POJ 3982 序列