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],
] head.h里代码实现如下:
#include<vector>
#include<queue>
using namespace std;
#define NULL 0 struct TreeNode
{
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x):val(x),left(NULL),right(NULL) {}
}; struct Node
{
TreeNode *node;
int level;
Node(){}
Node(TreeNode *n,int l):node(n),level(l){}
}; class Solution
{
private:
vector<vector<int> > ret;
vector<vector<int> > retReverse;
public:
vector<vector<int> > leverOrder(TreeNode *root)
{
ret.clear(); if(root == NULL)
return ret; queue<Node> q;
q.push (Node(root,0)); vector<int> a;
int curLever = -1; while(!q.empty() )
{
Node node = q.front();
if(node.node->left)
q.push(Node(node.node->left,node.level+1));
if(node.node->right)
q.push(Node(node.node->right,node.level+1)); if(curLever != node.level)
{
if(curLever != -1)
ret.push_back(a);
curLever = node.level ;
a.clear();
a.push_back(node.node->val);
}
else
a.push_back(node.node->val); q.pop();
} ret.push_back(a); retReverse.clear(); for(int i=ret.size()-1;i>=0;i--)
retReverse.push_back(ret[i]); return retReverse; }
};

main.cpp里代码实现如下:

#include"head.h"
#include<iostream> int main()
{
 TreeNode *root;
 root=new TreeNode(3);
 root->left = new TreeNode(9);
 root->right =  new TreeNode(20);
 root->right->left =  new TreeNode(15);
 root->right->right =  new TreeNode(7);
 Solution sol;
 for(vector<vector<int> >::size_type ix=0;ix!=sol.leverOrder(root).size();++ix)
  {for(vector<int>::size_type i=0;i!=sol.leverOrder(root)[ix].size();++i)
       cout<<sol.leverOrder(root)[ix][i]<<" ";
      cout<<endl;}
delete root->right->right;
 delete root->right->left;
 delete root->right;
 delete root->left;
 delete root;
 return 0;
}

[LeetCode] Binary Tree Level Order Traversal 2的更多相关文章

  1. LeetCode:Binary Tree Level Order Traversal I II

    LeetCode:Binary Tree Level Order Traversal Given a binary tree, return the level order traversal of ...

  2. [LeetCode] Binary Tree Level Order Traversal II 二叉树层序遍历之二

    Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left ...

  3. [LeetCode] Binary Tree Level Order Traversal 二叉树层序遍历

    Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, ...

  4. [leetcode]Binary Tree Level Order Traversal II @ Python

    原题地址:http://oj.leetcode.com/problems/binary-tree-level-order-traversal-ii/ 题意: Given a binary tree, ...

  5. LeetCode: Binary Tree Level Order Traversal 解题报告

    Binary Tree Level Order Traversal Given a binary tree, return the level order traversal of its nodes ...

  6. [Leetcode] Binary tree level order traversal ii二叉树层次遍历

    Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left ...

  7. [LeetCode] Binary Tree Level Order Traversal 与 Binary Tree Zigzag Level Order Traversal,两种按层次遍历树的方式,分别两个队列,两个栈实现

    Binary Tree Level Order Traversal Given a binary tree, return the level order traversal of its nodes ...

  8. LeetCode——Binary Tree Level Order Traversal II

    Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left ...

  9. LeetCode——Binary Tree Level Order Traversal

    Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, ...

  10. LeetCode - Binary Tree Level Order Traversal II

    题目: Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from ...

随机推荐

  1. 初始化lpc2106开发工程

    单片机型号:lpc2106.Init.s:初始化pc指针和sp指针.    AREA    Init, CODE, READONLY    IMPORT  test1_main    EXPORT  ...

  2. CentOS6.4 配置HAProxy+Keepalived

    安装HAProxy请参考 http://www.cnblogs.com/kgdxpr/p/3272861.html 安装Keepalived 1.下载安装依赖包 yum install -y wget ...

  3. SQL Server 收缩数据库

    //删除大量数据 /*** * * BEGIN TRANSACTION; * SELECT * INTO #keep FROM Original WHERE CreateDate > '2011 ...

  4. 【液晶模块系列基础视频】3.4fatfs接口函数的使用4

    ============================= 技术论坛:http://www.eeschool.org 博客地址:http://xiaomagee.cnblogs.com 官方网店:ht ...

  5. 【液晶模块系列基础视频】3.2fatfs接口函数的使用2

    ============================== 技术论坛:http://www.eeschool.org 博客地址:http://xiaomagee.cnblogs.com 官方网店:h ...

  6. 【液晶模块系列基础视频】1.3.iM_TFT30模块简介

    [液晶模块系列基础视频]1.3.iM_TFT30模块介绍 ============================== 技术论坛:http://www.eeschool.org 博客地址:http:/ ...

  7. PHP 开启短标签

    <?=STATIC_URL?> 让上面的语句可以正常运行,等同于下面的语句 <?php echo STATIC_URL;?> 可以在 php.ini 中找到 short_ope ...

  8. 使用AndroidStudio自动生成JavaDoc文档

    选中所需要生成的Module,找到工具栏上的 Tools,选择 Generate JavaDoc 出现如图的窗口 选择输出路径,就自动生成. 如果出现编码错误提示,则在 Other command l ...

  9. Solr高亮详解

    hl.fl: 用空格或逗号隔开的字段列表.要启用某个字段的highlight功能,就得保证该字段在schema中是stored.如果该参数未被给出,那么就会高亮默认字段 standard handle ...

  10. P2661 信息传递 TODO-TARJAN算法

    http://www.cnblogs.com/zbtrs/p/5762788.html http://blog.csdn.net/loi_yzs/article/details/52795093 都是 ...