102/107. Binary Tree Level Order Traversal/II

来源:互联网 发布:身份证电子版制作软件 编辑:程序博客网 时间:2024/05/16 14:05

原文题目:

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;}};




原创粉丝点击