Leetcode 102 Binary Tree Level Order Traversal 二叉树+BFS
2016-03-04 22:33
435 查看
二叉树的层次遍历
/** * 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>> levelOrder(TreeNode* root) { vector<vector<int>> v; if(!root) return v; vector<int> t; t.push_back(root->val); v.push_back(t); root->val = 1; queue<TreeNode*> q; q.push(root); while(!q.empty()){ TreeNode* now = q.front(); q.pop(); if(!now) continue; q.push(now->left); q.push(now->right); if(now->val < v.size()){ if(now->left) v[now->val].push_back(now->left->val); if(now->right) v[now->val].push_back(now->right->val); } else{ vector<int> t; if(now->left) t.push_back(now->left->val); if(now->right) t.push_back(now->right->val); if(t.size() != 0)v.push_back(t); } if(now->left) now->left->val = now->val + 1; if(now->right)now->right->val = now->val + 1; } //reverse(v.begin(),v.end()); return v; } };
相关文章推荐
- 联想y460 +centos6.4 64位 开启无线热点Ap
- Java中的字节流和字符流
- 模板与泛型编程2
- Android中Intent传递对象的两种方法(Serializable,Parcelable)
- nyoj 456 邮票分你一半<背包>
- ViewPager 配合FragmentPagerAdapter
- 网页爬虫及其用到的算法和数据结构
- 餐厅点餐
- a和&a的区别
- [LeetCode]224. Basic Calculator
- BZOJ4011(DP)
- Exynos4412 Uboot 移植(二)—— Uboot 启动流程分析
- 圆的面积
- Linux技术——tcpdump命令详解
- mysql修改表、字段、库的字符集
- 距离变化——两遍算法
- 基于tiny4412的Linux内核移植 -- MMA7660驱动移植(九-2)
- 单一继承多次与多重继承的构造与析构
- Palindrome Linked List
- 外部储存篇