LeetCode Algorithms #102 <Binary Tree Level Order Traversal>

来源:互联网 发布:linux net snmp使用 编辑:程序博客网 时间:2024/06/07 01:16

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,#,#,15,7},

    3   / \  9  20    /  \   15   7

return its level order traversal as:

[  [3],  [9,20],  [15,7]]
思路:

因为需要在迭代的时候插入层的信息,所以考虑再开一个函数进行迭代展开。

。。。

解:

/** * 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 {private:    vector<vector<int>> _resultVector;public:    vector<vector<int>> levelOrder(TreeNode* root) {        addParticularLevel(root, 0);        return _resultVector;    }    void addParticularLevel(TreeNode* node, int level)    {        if(node == nullptr)            return;                if(level == _resultVector.size())        {            vector<int> particularLevelVals;            _resultVector.push_back(particularLevelVals);        }        _resultVector[level].push_back(node->val);        addParticularLevel(node->left, level+1);        addParticularLevel(node->right, level+1);    }};



0 0
原创粉丝点击