【leetcode】Binary Tree Level Order Traversal I&II
2015-05-06 09:52
441 查看
II:
Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left to right, level by level from leaf to root).
For example:
Given binary tree {3,9,20,#,#,15,7},
3
/ \
9 20
/ \
15 7
return its bottom-up level order traversal as:
[
[15,7],
[9,20],
[3]
]
I:
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]
]
Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left to right, level by level from leaf to root).
For example:
Given binary tree {3,9,20,#,#,15,7},
3
/ \
9 20
/ \
15 7
return its bottom-up level order traversal as:
[
[15,7],
[9,20],
[3]
]
class Solution { public: vector<vector<int> > levelOrderBottom(TreeNode* root) { vector<vector<int> >ret; ret.clear(); if(root==NULL) return ret; queue<TreeNode*> Q; Q.push(root); Q.push(NULL); vector<int> tmp; while(!Q.empty()) { TreeNode *p=Q.front(); Q.pop(); if(p!=NULL) { tmp.push_back(p->val); if(p->left) Q.push(p->left); if(p->right) Q.push(p->right); }else{ if(!tmp.empty()) { S.push(NULL); ret.push_back(tmp); tmp.clear(); } } } reverse(ret.begin(),ret.end()); return ret; } };
I:
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]
]
class Solution { public: vector<vector<int> > levelOrder(TreeNode* root) { queue<TreeNode *>Q; vector<vector<int> > ret; ret.clear(); vector<int> tmp; Q.push(root); Q.push(NULL); TreeNode * node; while(!Q.empty()) { node=Q.front(); Q.pop(); if(node!=NULL) { tmp.push_back(node->val); if(node->left) Q.push(node->left); if(node->right) Q.push(node->right); }else{ if(!tmp.empty()) { Q.push(NULL); ret.push_back(tmp); tmp.clear(); } } } return ret; } };
相关文章推荐
- 【LeetCode】binary-tree-level-order-traversal i&ii&zigzag
- 【leetcode】Binary Tree Level Order Traversal I & II
- leetcode -- Binary Tree Level Order Traversal & II-- 重点
- [leetcode]_Binary Tree Level Order Traversal I && II
- LeetCode Algorithms #107 <Binary Tree Level Order Traversal II>
- [LeetCode] Binary tree level order traversal I & II
- LeetCode之“树”:Binary Tree Level Order Traversal && Binary Tree Level Order Traversal II
- 【LeetCode从零单刷】Binary Tree Level Order Traversal I & II
- 【leetcode】【107】Binary Tree Level Order Traversal II
- [Leetcode] Binary Tree Level Order Traversal II (Java)
- LeetCode: Binary Tree Level Order Traversal II
- 【Leetcode】【Easy】Binary Tree Level Order Traversal II
- [LeetCode 107]Binary Tree Level Order Traversal II(递归法)
- leetcode Binary Tree Level Order Traversal II
- LeetCode - Binary Tree Level Order Traversal II
- LeetCode Binary Tree Level Order Traversal II
- Leetcode[107]-Binary Tree Level Order Traversal II
- Binary Tree Level Order Traversal II [LeetCode]
- leetcode--BinaryTreeLevelOrderTraversal II (二叉树层遍历递归实现)
- Leetcode: Binary Tree Level Order Traversal II