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

      

  • 相关阅读:
    leetcode122
    leetcode121
    leetcode773
    leetcode803
    leetcode658
    leetcode723
    leetcode134
    leetcode340
    leetcode721
    leetcode362
  • 原文地址:https://www.cnblogs.com/xqn2017/p/8006856.html
Copyright © 2020-2023  润新知