美文网首页
leetcode 剑指 Offer 32 - II. 从上到下打

leetcode 剑指 Offer 32 - II. 从上到下打

作者: SourceZhang | 来源:发表于2020-10-21 15:40 被阅读0次

leetcode

struct TreeNode {
    int val;
    TreeNode *left;
    TreeNode *right;
    TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
class Solution {
public:
    vector<vector<int>> levelOrder(TreeNode* root) {

        std::vector<std::vector<int>> results;
        if ( root ) {
            
            std::vector<TreeNode *> nodes = { root };
            while ( !nodes.empty() ) {
                
                std::vector<int> arrNumbers;
                for ( int index = 0; index < nodes.size(); ++index ) {
                    
                    TreeNode *node = nodes[index];
                    if ( node -> left ) {
                        
                        nodes.insert( nodes.begin() + index, node -> left);
                        ++index;
                    }
                    
                    if ( node -> right ) {
                        
                        nodes.insert( nodes.begin() + index, node -> right);
                        ++index;
                    }
                    
                    if ( node ) {
                        
                        arrNumbers.push_back( node -> val );
                        nodes.erase( nodes.begin() + index );
                        --index;
                    }
                }
                if ( arrNumbers.size() > 0 ) {
                    
                    results.push_back( arrNumbers );
                }
            }
        }
        
        return results;
    }
};

相关文章

网友评论

      本文标题:leetcode 剑指 Offer 32 - II. 从上到下打

      本文链接:https://www.haomeiwen.com/subject/iicdmktx.html