Skip to content

102. Binary Tree Level Order Traversal

难度: Medium

刷题内容

原题连接

  • https://leetcode-cn.com/problems/binary-tree-level-order-traversal/

内容描述

``` 给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。

例如: 给定二叉树: [3,9,20,null,null,15,7],

3

/ \ 9 20 / \ 15 7 返回其层次遍历结果:

[ [3], [9,20], [15,7] ] ```

解题方案

思路 1

层次遍历
vector<vector<int>> levelOrder(TreeNode* root) {
    vector<vector<int>> ans;
    if(root==NULL)
        return ans;
    vector<TreeNode*> level;
    level.push_back(root);
    while(!level.empty()){
        vector<TreeNode*> tmp;
        vector<int> level_val;
        for(int i=0;i<level.size();i++){
            if(level[i]->left)
                tmp.push_back(level[i]->left);
            if(level[i]->right)
                tmp.push_back(level[i]->right);
            level_val.push_back(level[i]->val);
        }
        ans.push_back(level_val);
        level = tmp;
    }
    return ans;
}



回到顶部