博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
107. Binary Tree Level Order Traversal II
阅读量:4657 次
发布时间:2019-06-09

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

题目:

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]] 题目分析: 这道题本身不难,用一个广度优先遍历先分层,再将每层的结果自左向右输出。方便起见用到了栈和队列。记录这道题是一些语法的使用上,帮助自己回忆。 代码:
1 /** 2  * Definition for a binary tree node. 3  * struct TreeNode { 4  *     int val; 5  *     TreeNode *left; 6  *     TreeNode *right; 7  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8  * }; 9  */10  #include 
11 #include
12 class Solution {13 public:14 struct Pair{15 TreeNode* root;16 int level;17 Pair(TreeNode* _root,int _level) : root(_root),level(_level) {}18 };19 vector
> levelOrderBottom(TreeNode* root) {20 stack
s;21 queue
q;22 vector
> v;23 if(!root) return v;24 q.push(Pair(root,0));25 while(!q.empty())26 {27 if(q.front().root->right)28 q.push(Pair(q.front().root->right,q.front().level+1));29 if(q.front().root->left)30 q.push(Pair(q.front().root->left,q.front().level+1));31 s.push(q.front());32 q.pop();33 }34 int level = s.top().level;35 v=vector
>(level+1);36 while(!s.empty())37 {38 v[level-s.top().level].push_back(s.top().root->val);39 s.pop();40 }41 return v;42 }43 };

 

转载于:https://www.cnblogs.com/MT-ComputerVision/p/7026769.html

你可能感兴趣的文章
sprintf 和strcpy 的差别
查看>>
JS中window.event事件使用详解
查看>>
ES6深入学习记录(一)class方法相关
查看>>
C语言对mysql数据库的操作
查看>>
INNO SETUP 获得命令行参数
查看>>
HTML5与CSS3权威指南之CSS3学习记录
查看>>
docker安装部署
查看>>
AVL树、splay树(伸展树)和红黑树比较
查看>>
多媒体音量条显示异常跳动
查看>>
运算符及题目(2017.1.8)
查看>>
ssh自动分发密匙脚本样板
查看>>
转 小辉_Ray CORS(跨域资源共享)
查看>>
Linux安装postgresql
查看>>
MyBatis启动:MapperStatement创建
查看>>
【 全干货 】5 分钟带你看懂 Docker !
查看>>
[转]优化Flash性能
查看>>
popStar手机游戏机机对战程序
查看>>
lambda表达式树
查看>>
二次注入原理及防御
查看>>
会话记住已登录功能
查看>>