LeetCode Binary Tree Level Order Traversal
Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).
For example:
Given binary tree {3,9,20,#,#,15,7}
,
DFS遍历方法:
1 /** 2 * Definition for binary tree 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 private: 12 vector<vector<int> > ret; 13 public: 14 void solve(int dep, TreeNode *root) 15 { 16 if (root == NULL) 17 return; 18 19 if (ret.size() > dep) 20 { 21 ret[dep].push_back(root->val); 22 } 23 else 24 { 25 vector<int> a; 26 a.push_back(root->val); 27 ret.push_back(a); 28 } 29 30 solve(dep + 1, root->left); 31 solve(dep + 1, root->right); 32 } 33 34 vector<vector<int> > levelOrder(TreeNode *root) { 35 // Start typing your C/C++ solution below 36 // DO NOT write int main() function 37 ret.clear(); 38 solve(0, root); 39 40 return ret; 41 } 42 };
BFS遍历打印
1 /** 2 * Definition for binary tree 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 11 struct Node 12 { 13 TreeNode *node; 14 int level; 15 Node(){} 16 Node(TreeNode *n, int l):node(n), level(l){} 17 }; 18 19 class Solution { 20 private: 21 vector<vector<int> > ret; 22 public: 23 vector<vector<int> > levelOrder(TreeNode *root) { 24 // Start typing your C/C++ solution below 25 // DO NOT write int main() function 26 ret.clear(); 27 28 if (root == NULL) 29 return ret; 30 31 queue<Node> q; 32 33 q.push(Node(root, 0)); 34 35 vector<int> a; 36 int curLevel = -1; 37 38 while(!q.empty()) 39 { 40 Node node = q.front(); 41 if (node.node->left) 42 q.push(Node(node.node->left, node.level + 1)); 43 if (node.node->right) 44 q.push(Node(node.node->right, node.level + 1)); 45 46 if (curLevel != node.level) 47 { 48 if (curLevel != -1) 49 ret.push_back(a); 50 curLevel = node.level; 51 a.clear(); 52 a.push_back(node.node->val); 53 } 54 else 55 a.push_back(node.node->val); 56 57 q.pop(); 58 } 59 60 ret.push_back(a); 61 62 return ret; 63 } 64 };
转载于:https://www.cnblogs.com/chkkch/archive/2012/10/27/2742955.html
LeetCode Binary Tree Level Order Traversal相关推荐
- [LeetCode] Binary Tree Level Order Traversal 二叉树层次遍历(DFS | BFS)
目录: 1.Binary Tree Level Order Traversal - 二叉树层次遍历 BFS 2.Binary Tree Level Order Traversal II - 二叉树层次 ...
- [leetcode]Binary Tree Level Order Traversal II
//层次遍历 逆序 public class Solution { public List<List<Integer>> levelOrderBottom(TreeNode r ...
- 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 l ...
- LeetCode 107. Binary Tree Level Order Traversal II
LeetCode 107. Binary Tree Level Order Traversal II Solution1:我的答案 比102那道题多了一行代码... /*** Definition f ...
- 107. Binary Tree Level Order Traversal II
题目 Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from l ...
- 102. Binary Tree Level Order Traversal
题目 Binary Tree Level Order Traversal 层次遍历二叉树 链接 Given a binary tree, return the level order traversa ...
- Binary Tree Level Order Traversal II 解题思路
思路: 与Binary Tree Level Order Traversal I 几乎一样.只是最后将结果存放在栈里,然后在栈里再传给向量即可. 再次总结思路: 两个queue,先把第一个放进q1,循 ...
- [Leetcode]@python 107. Binary Tree Level Order Traversal II
题目链接 https://leetcode.com/problems/binary-tree-level-order-traversal-ii/ 题目原文 Given a binary tree, r ...
- LeetCode: 102. Binary Tree Level Order Traversal
题目 Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to rig ...
最新文章
- 【建站系列教程】2.2、fiddler手机抓包教程
- Linux之父警告全球程序员:我刚发布的5.12内核有bug,你们千万别用
- java 集成grizzly_java – 与Jersey和Spring集成Grizzly2.2.X
- 计算机蠕虫的存在形式,计算机蠕虫
- MySQL grant 权限,分别可以作用在多个层次上
- (多变量线性回归)正规方程求解特征参数的推导过程
- 用easymock来mock数据
- 华为P20云文档空间满了怎么清理_原来华为手机能这样清理垃圾,怪不得别人的手机再用两年不卡顿...
- Ubuntu 16.04 安裝chrome
- python网易云付费歌曲下载_python 根据网易云歌曲的ID 直接下载歌曲的实例
- bootstrap批量删除操作!
- 计算机电脑用户名,如何改计算机用户名(administrator)
- Dex.top新手使用教程
- OrCAD多页原理图器件按页编号的设置
- 支付宝红包机器人不加好友解决思路
- 商城项目商品列表页的渲染实现(含动图)
- HEXOFontmin
- 法语初级学习笔记-01-语音
- 量化交易 实战第一课 策略入门
- 基于Egteks mPower1203仪器和KEYSIGHT N6705仪器的一款智能穿戴产品的低功耗电流测试评估
热门文章
- Linux vim打开文件的四种方式
- openresty入门示例
- Spring/Spring MVC/Spring Boot自动装配机制介绍
- Hadoop大数据分布式文件系统hdfs的工作机制
- 通过IDEA查看jar包中的依赖关系
- 使用tracert命令查看某一个网站的ip地址
- 有趣的网页注释代码,保护我方源码
- matlab 工业相机 曝光时间_机器视觉入门——光源相机镜头
- python能开发手机程序吗_python能否开发安卓应用app?当然可以,python助你轻松搞定...
- WIFI网络,两台笔记本互联Oracle,一台是11g,一台是12c