我是靠谱客的博主 潇洒康乃馨,最近开发中收集的这篇文章主要介绍【LeetCode 102】Binary Tree Level Order Traversal (C++),觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
Problem:
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,null,null,15,7]
,
3 / 9 20 / 15 7
return its level order traversal as:
[ [3], [9,20], [15,7] ]
Solution:
用一个队列实现,很难用栈实现,因为需要保证同层的有序插入
/**
* 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>> result;
queue<TreeNode*> q;
if(root==NULL)return result;
q.push(root);
while(!q.empty()){
result.push_back(vector<int>());
int s,deep;
s=q.size();
deep=result.size()-1;
while(s>0){
TreeNode* t=q.front();
q.pop();
result[deep].push_back(t->val);
if(t->left!=NULL)q.push(t->left);
if(t->right!=NULL)q.push(t->right);
s--;
}
}
return result;
}
};
Attention:
stl数据结构vector和queue的使用
最后
以上就是潇洒康乃馨为你收集整理的【LeetCode 102】Binary Tree Level Order Traversal (C++)的全部内容,希望文章能够帮你解决【LeetCode 102】Binary Tree Level Order Traversal (C++)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复