zoukankan      html  css  js  c++  java
  • 107.Binary Tree Level Order Traversal 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,null,null,15,7],

        3
       / 
      9  20
        /  
       15   7
    

    return its bottom-up level order traversal as:

    [
      [15,7],
      [9,20],
      [3]
    }
    /**
     * Definition for a binary tree node.
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     * };
     */
    class Solution {
    public:
        vector<vector<int>> levelOrderBottom(TreeNode* root) {
            queue<TreeNode *> q;
            vector<vector<int> > vv;
            if (root != NULL) {
                q.push(root);
            }
            while(!q.empty()) { 
                int m = q.size();
                vector<int> v;
                while(m > 0) {
                    TreeNode * n = q.front();q.pop();
                    v.push_back(n->val);
                    TreeNode * left = n->left;
                    TreeNode * right = n->right;
                    if (left != NULL) q.push(left);
                    if (right != NULL) q.push(right);
                    m--;
                }
                if(v.size())vv.push_back(v);
            }
            reverse(vv.begin(), vv.end());
            return vv;
        }
    };

    树的层次遍历,输出每一层

  • 相关阅读:
    随机生成几位数
    文件下载
    动态SQL
    springmvc的xml版本和注解版本
    Hibernate与MyBatis
    关于过滤器!!
    jsp-EL表达式
    SpringMVC 自定义类型转换器
    Spring MVC 知识点记忆
    cmd的操作命令导出导入.dmp文件
  • 原文地址:https://www.cnblogs.com/pk28/p/7222019.html
Copyright © 2011-2022 走看看