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 ...
最新文章
- 一些前端面试题(一)
- 【Android 安全】DEX 加密 ( Application 替换 | ActivityThread 中的 mAllApplications 集合添加 Application )
- 京东发布虎年春晚互动攻略 春晚联名款金碗套装首次曝光
- Play on Words UVA - 10129 (欧拉回路)
- C++自学08:类型推断(auto/typeid)
- 成都程序员俱乐部通知
- 【阿里巴巴Java编程规范学习 四】Java质量安全规约
- java thrift 教程_RPC学习----Thrift快速入门和Java简单示例
- python实现三阶魔方还原
- 基础实验——与V831串口通讯
- 云上全流程透明性备品备件协同管理
- 解决opencv imwrite()影像全黑
- 速看!deep learning(rnn、cnn)调参的经验
- css3之 谜灯卡片_CSS3 迷幻光影文本特效
- 计算机叶老师,叶茫 - 教师简历 CV- 武汉大学计算机学院
- python个人所得税怎么写分录_个人所得税的凭证分录怎么写
- 2021年制冷与空调设备安装修理复审考试及制冷与空调设备安装修理作业考试题库
- 江西计算机在职博士2020考试,江西在职研究生报名时间2020
- 西邮计算机网络实验,西邮网络实验报告.doc
- 拥抱Swift吧,骚年!
热门文章
- Linux reboot指令
- 请分别介绍一下aof和rdb都有哪些优点?以及两者有何区别?
- Java中将List中的值赋给另一个List几种方法实现
- 基于 abp vNext 和 .NET Core 开发博客项目 - 定时任务最佳实战(一)
- 【windows】Qt打开资源管理器并选中指定文件
- 卷积神经网络的网络层与参数的解析
- vue html5 picker,基于vue的picker组件
- MIUI 10 Android 原生字体,[教程] MIUI10全局字体替换教程,了解一下?
- oracle show选项,Oracleshowparameter命令的小技巧有哪些呢?
- pythonselenium设置_selenium 怎样设置请求头?