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

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

  • 相关阅读:
    mysql-数据库增删改查
    判断,循环
    数组
    html 三种垂直居中
    箭头函数
    Array类型
    object
    JAVA WEB 行业技术
    一个好的程序员
    经典语录
  • 原文地址:https://www.cnblogs.com/pk28/p/7222019.html
Copyright © 2011-2022 走看看