102/107. Binary Tree Level Order Traversal/II

原文题目:

102. Binary Tree Level Order Traversal

107. Binary Tree Level Order Traversal II

读题:

102. 层序遍历二叉树,每一层作为一个数组,从上到下输出

107.层序遍历二叉树,每一层作为一个数组,反过来从下到上输出

两者只有最后一行的存储方式不一致

class Solution(object):
def levelOrder(self, root):
"""
:type root: TreeNode
:rtype: List[List[int]]
"""
if not root:
return []
res = []
queue = [root]
while queue:
level = []
for i in range(len(queue)):
node = queue.pop()
level.append(node.val)
if node.left:
queue.insert(0,node.left)
if node.right:
queue.insert(0,node.right)
res.append(level) #102
#res.insert(0,level) #107

  

class Solution {
public:
vector<vector<int>> levelOrder(TreeNode* root)
{
vector<vector<int>> res;
if (NULL == root) return res; queue <TreeNode*> q;
q.push(root);
while(!q.empty())
{
vector <int> oneLevel;
int size =q.size();
for (int i = 0; i<size;++i)
{
TreeNode *node = q.front();
q.pop();
oneLevel.push_back(node->val);
if (node->left) q.push(node->left);
if (node->right) q.push(node->right);
}
res.push_back(oneLevel);
}
//对层次遍历结果进行翻转
//reverse(res.begin(), res.end()); //107则增加这一行
return res;
}
};

  

上一篇:Cocos本地存储LocalStorage


下一篇:(二叉树 BFS) leetcode 107. Binary Tree Level Order Traversal II