leetcode-429. N叉树的层序遍历-C语言

/*
 * 算法思想:
 * 根据当前节点的depth(从0开始),按照先序遍历树;
 * 两层vector>, 从外到里面第一层的index为depth,第二层为从左到右访问同一层的树节点。
 */
class Solution {
public:
    void _levelOrder(vector> *ret, Node* root, int depth) {
        int i,len;
        
        if(!root) return ;
        len = root->children.size();
        
        if(ret->size() <= depth){
            vector v;
            ret->push_back(v);
        }
        
        (*ret)[depth].push_back(root->val);
        
        for(i=0; ichildren[i], depth+1);
        }
    }
    
    vector> levelOrder(Node* root) {
        vector> v;
        
        _levelOrder(&v, root, 0);
        
        return v;
    }
};

你可能感兴趣的:(LeetCode)