leetcode 二叉树层次遍历输出Binary Tree Level Order Traversal
2015-08-15 10:07
726 查看
逆序输出:
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,#,#,15,7},
3
/ \
9 20
/ \
15 7
return its bottom-up level order traversal as:
[
[15,7],
[9,20],
[3]
]
递归进行层次遍历,每层相当于一个vector<int>,由于与层数有关故引入层数参数:
顺序输出:
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},
3
/ \
9 20
/ \
15 7
return its level order traversal as:
[
[3],
[9,20],
[15,7]
]
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,#,#,15,7},
3
/ \
9 20
/ \
15 7
return its bottom-up level order traversal as:
[
[15,7],
[9,20],
[3]
]
递归进行层次遍历,每层相当于一个vector<int>,由于与层数有关故引入层数参数:
class Solution { private: vector<vector<int>>res; public: void levelOrder(struct TreeNode* root,int level){ if(root==NULL)return ; if(level==res.size()){ vector<int> v; res.push_back(v); } res[level].push_back(root->val); levelOrder(root->left,level+1); levelOrder(root->right,level+1); }//确定是level层而不是level-1层 vector<vector<int>> levelOrderBottom(struct TreeNode* root) { levelOrder(root,0); return vector<vector<int>>(res.rbegin(),res.rend()); } };
顺序输出:
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},
3
/ \
9 20
/ \
15 7
return its level order traversal as:
[
[3],
[9,20],
[15,7]
]
class Solution { private: vector<vector<int>>res; public: void levelOrder(struct TreeNode* root,int level){ if(root==NULL)return ; if(level==res.size()){ vector<int> v; res.push_back(v); } res[level].push_back(root->val); levelOrder(root->left,level+1); levelOrder(root->right,level+1); } vector<vector<int>> levelOrder(TreeNode* root) { levelOrder(root,0); return res; } };
相关文章推荐
- POJ 2440 DNA
- scala学习:List的一阶函数操作代码实战
- Android 系统状态栏一体化实现
- /dev/fpc1020
- Structure from Motion (SfM)
- 图的广度优先遍历算法运用队列主针对邻接表有向图
- oracle 学习笔记(五)
- 如何在eclipse中安装Jess
- Codeforces Round #316 (Div. 2) A. Elections
- The Blocks Problem(vector)
- sql中的in与not in,exists与not exists的区别
- java中throws和throw的区别
- .NET异步编程总结----四种实现模式
- [LintCode] Flip Bits
- AWS的load balance
- Mac的控制台命令无法使用command not found
- 八大排序算法(四)堆排序
- Windows 10 x64 安装 Visual Basic 6.0 SP6
- Java基础03 构造器与方法重载
- 关于指针的见解