Skip to content

Latest commit

 

History

History
62 lines (50 loc) · 1.13 KB

0102._Binary_Tree_Level_Order_Traversal.md

File metadata and controls

62 lines (50 loc) · 1.13 KB

102. Binary Tree Level Order Traversal

难度: Medium

刷题内容

原题连接

内容描述

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

例如:
给定二叉树: [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;
}