102. Binary Tree Level Order Traversal

来源:互联网 发布:淘宝虚假交易不扣分 编辑:程序博客网 时间:2024/06/17 14:44

题目

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]]

翻译

返回这棵树的层序遍历

分析

递归法的关键是要设置一个level(depth),每一个level正好是vector的下标。

了解了二维vector是如何存入数据的

中间调试范的错误有

将ret.size()声明在了外面,结果出现timerun;


/** * 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>> ret;                void buildorder(TreeNode* root,int level){        if(root==NULL)   return;        if(ret.size()==level) ret.push_back({});        ret[level].push_back(root->val);        buildorder(root->left,level+1);        buildorder(root->right,level+1);    }        vector<vector<int>> levelOrder(TreeNode* root) {        buildorder(root,0);        return ret;    }};


0 0