题意是倒过来层次遍历二叉树

下面我介绍下BFS的基本框架,所有的BFS都是这样写的

  1. struct Nodetype {
  2. int d;//层数即遍历深度
  3. KeyType m;//相应的节点值
  4. }
  5. queue<Nodetype> q;
  6. q.push(firstnode);
  7. while(!q.empty()){
  8. Nodetype now = q.front();
  9. q.pop();
  10. ........
  11. for(遍历所有now点的相邻点next){
  12. if(!visit[next]) {
  13. 访问每个没有访问过的点;
  14. 做相应的操作;
  15. next.d = now.d + ;
  16. q.push(next);
  17. }
  18. }
  19. }

对于二叉树将val看成层数,这边我偷懒了。

  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. class Solution {
  11. public:
  12. vector<vector<int>> levelOrderBottom(TreeNode* root) {
  13.  
  14. vector<vector<int>> v;
  15. if(!root) return v;
  16. vector<int> t;
  17.  
  18. t.push_back(root->val);
  19. v.push_back(t);
  20. root->val = ;
  21.  
  22. queue<TreeNode*> q;
  23. q.push(root);
  24.  
  25. while(!q.empty()){
  26. TreeNode* now = q.front();
  27. q.pop();
  28. if(!now) continue;
  29.  
  30. q.push(now->left);
  31. q.push(now->right);
  32. if(now->val < v.size()){
  33. if(now->left) v[now->val].push_back(now->left->val);
  34. if(now->right) v[now->val].push_back(now->right->val);
  35. }
  36. else{
  37. vector<int> t;
  38. if(now->left) t.push_back(now->left->val);
  39. if(now->right) t.push_back(now->right->val);
  40. if(t.size() != )v.push_back(t);
  41. }
  42. if(now->left) now->left->val = now->val + ;
  43. if(now->right)now->right->val = now->val + ;
  44. }
  45. reverse(v.begin(),v.end());
  46. return v;
  47. }
  48. };

Leetcode 107 Binary Tree Level Order Traversal II 二叉树+BFS的更多相关文章

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

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

  2. leetcode 107.Binary Tree Level Order Traversal II 二叉树的层次遍历 II

    相似题目: 102 103 107 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode ...

  3. LeetCode 107 Binary Tree Level Order Traversal II(二叉树的层级顺序遍历2)(*)

    翻译 给定一个二叉树,返回从下往上遍历经过的每一个节点的值. 从左往右,从叶子到节点. 比如: 给定的二叉树是 {3,9,20,#,#,15,7}, 3 / \ 9 20 / \ 15 7 返回它从下 ...

  4. Java for LeetCode 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 ...

  5. (二叉树 BFS) leetcode 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 ...

  6. LeetCode 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 ...

  7. leetcode 107 Binary Tree Level Order Traversal II ----- java

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

  8. LeetCode 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 ...

  9. Java [Leetcode 107]Binary Tree Level Order Traversal II

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

随机推荐

  1. Bootstrap 栅格系统(转载)

    源地址:http://www.cnblogs.com/linjiqin/p/3559800.html Bootstrap 栅格系统 目录1.简介2.栅格选项3.列偏移4.嵌套列5.列排序 1.简介Bo ...

  2. JDK的安装及部署配置(配图解)

    JDK的安装及部署配置 双击安装文件,出现如下界面 点击[下一步]出现如下界面,更改安装路径(建议安装至D盘), 点击[下一步],出现如下界面,修改文件夹名. 点击[确定],耐心等待 直至出现如下界面 ...

  3. java根据逗号分隔字符串,后加上单引号

    public class SpiltString { public String spilt(String str) {  StringBuffer sb = new StringBuffer();  ...

  4. 第六周PSP

    [week6]psp  工作周期:10.20-10.27  本周PSP     C类型 C内容 S开始时间 ST结束时间 I中断时间 T净时间(分) 活动 开事后诸葛亮会议 13:00 14:00 0 ...

  5. ArcGIS删除部分数据后全图范围不正确

      我有一个全国地图的图层,现在删除图层中其他省份,只保留山东省的图形,但是点击全图后,全图范围仍然是全国地图时候的全图范围,使用的版本是ArcGIS9.3,数据存放在9.3的个人数据库中(Perso ...

  6. hadoop中master免登录slave

    hadoop集群免登录配置 在主机master上执行如下: 1. $cd ~/.ssh(如果没有此目录,可以手动创建) 2. $ssh-keygen -t rsa  ----------------- ...

  7. 数据库的char(n)

    Mysql中的char(n)或者varchar(n) 其中的n就是代表列,不代表字节! varchar(n)其中的n最多是65535 , 应该在创建表的同时,指定表的编码方式为latin1,因为lat ...

  8. JMeter入门

    下载及安装 下载地址:http://jmeter.apache.org/download_jmeter.cgi 直接下载Release版本,解压即可使用 MAC.Linux中直接运行:jmeter文件 ...

  9. bzoj 1977

    题意:求严格的次小生成树.点n<=100000,m<=300000 思路:很容易想到先做一边最小生成树,然后枚举每条非树边(u, v, w),然后其实就是把u,v路径上小于w的最大边替换成 ...

  10. sublime Text3 插件编写教程_第一课

    今天给大家分享一下编写一个Sublime Text3 插件的流程以及使用插件解决的一个实际问题. 一.开发插件的前提条件 开发sublime插件用到的是Python语言,因此必须懂Python语言的基 ...