我是靠谱客的博主 潇洒康乃馨,最近开发中收集的这篇文章主要介绍【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++)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部