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]
    ]

    思路:

    无非是最后使用reverse函数进行颠倒一下即可,不难。

    代码:

    /**
     * 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) {
            vector<vector<int> >res;
            if(root==NULL)  return res;
            queue<TreeNode*>q;
            q.push(root);
            while(!q.empty()){
                int n=q.size();
                vector<int>tem;
                for(int i=0;i<n;i++){
                    TreeNode* temp=q.front();
                    tem.push_back(temp->val);
                    if(temp->left)   q.push(temp->left);
                    if(temp->right)   q.push(temp->right);
                    q.pop();
                }
                res.push_back(tem);
            }
            reverse(res.begin(),res.end());
            return res;
        }
    };


  • 相关阅读:
    文件操作与函数
    编码格式
    if、while、for快速掌握
    运算符、数据类型、数据结构
    正则表达式
    面向对象--属性
    面向对象--对象的创建
    函数的内置属性
    类型检查
    函数表达式 及 闭包
  • 原文地址:https://www.cnblogs.com/jsrgfjz/p/8519842.html
Copyright © 2011-2022 走看看