博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode 107. 二叉树的层次遍历 II 队列+栈的应用
阅读量:3903 次
发布时间:2019-05-23

本文共 935 字,大约阅读时间需要 3 分钟。

给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)

例如:

给定二叉树 [3,9,20,null,null,15,7],

3   / \  9  20    /  \   15   7

返回其自底向上的层次遍历为:

[  [15,7],  [9,20],  [3]]

 看到这个结果很容易想到先进后出,然后就联想到栈了。。。

将每层用栈来存储。最后将栈清空。。

代码如下:

C++:

/** * 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
> levelOrderBottom(TreeNode* root) { queue
q; stack
>s; vector
> ve; if(root==NULL) return ve; q.push(root); while (!q.empty()) { int Size=q.size(); vector
v1; while (Size--) { TreeNode* t=q.front(); q.pop(); v1.push_back(t->val); if(t->left) q.push(t->left); if(t->right) q.push(t->right); } s.push(v1); } while (!s.empty()) { ve.push_back(s.top()); s.pop(); } return ve; }};

 

转载地址:http://xvaen.baihongyu.com/

你可能感兴趣的文章
linux sysctl 参数实现 暨 ip_forward参数对Linux内核转发影响分析
查看>>
linux 路由表 的一些相关资料
查看>>
Linux 路由 学习笔记 之三 路由查找流程分析
查看>>
LINUX IP 路由实现
查看>>
快速重传与快速恢复算法
查看>>
TCP重传定时器
查看>>
CentOS 6.3 - 安装 Nginx 1.2.7(yum源)
查看>>
shell中trap捕获信号
查看>>
关于Linux Shell的信号trap功能你必须知道的细节
查看>>
Linux原始套接字实现分析
查看>>
CENTOS 6.5 配置YUM安装NGINX
查看>>
#ifdef DEBUG的理解
查看>>
Linux 任务控制的几个技巧( &, [ctrl]-z, jobs, fg, bg, kill)
查看>>
慧眼云:基于云计算和大数据分析的主动防御实践
查看>>
58集团监控业务实践:将网站运行信息透明化
查看>>
给Django用户的SQLAlchemy介绍
查看>>
consul http api
查看>>
如何定位问题
查看>>
使用火焰图分析CPU性能回退问题
查看>>
openresty lua zlib整合安装 让lua支持解压服务端压缩过的数据
查看>>