zoukankan      html  css  js  c++  java
  • 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,#,#,15,7},

        3
       / 
      9  20
        /  
       15   7
    

    return its bottom-up level order traversal as:

    [
      [15,7],
      [9,20],
      [3]
    ]
    
    /**
     * Definition for binary tree
     * 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) {
            vector<vector<TreeNode*> > list;
            vector<vector<int> > result;
            if(root==NULL)
                return result;
            vector<TreeNode*> level;
            level.push_back(root);
            list.push_back(level);
            while(level.size()>0)
            {
                vector<TreeNode*> newlevel;
                for(int i=0;i<level.size();i++)
                {
                    if(level[i]->left!=NULL) newlevel.push_back(level[i]->left);
                    if(level[i]->right!=NULL) newlevel.push_back(level[i]->right);
                }
                list.push_back(newlevel);
                level=newlevel;
            }
            
            for(int i=0;i<list.size()-1;i++)
            {
                vector<int> v;
                for(int j=0;j<list[list.size()-i-2].size();j++)
                    v.push_back(list[list.size()-i-2][j]->val);
                result.push_back(v);
            }
            return result;
        }
    };
  • 相关阅读:
    服务器被黑

    ZXW说
    抽象类
    URL参数加密解密过程
    SqlServer 跨服务器 DML
    发布
    C#操作XML小结
    定时指执程序
    SQL语句判断数据库、表、字段是否存在
  • 原文地址:https://www.cnblogs.com/erictanghu/p/3759613.html
Copyright © 2011-2022 走看看