二叉树按层打印(借用queue)

/*
struct TreeNode {
    int val;
    struct TreeNode *left;
    struct TreeNode *right;
    TreeNode(int x) :
            val(x), left(NULL), right(NULL) {
    }
};*/

class TreePrinter {
public:
    vector<vector<int> > printTree(TreeNode* root) {
       queue<TreeNode*>q;
        vector<vector<int> >result;
        q.push(root);
       
        while(!q.empty())
        {
          vector<int>m;
        
       //  q.puinsh(root);
            int s=q.size();
            for(int i=0;i<s;i++)
            { 
                TreeNode*p=q.front();
              m.push_back(p->val);
                if(p->left)
                q.push(p->left);
              if(p->right)
                q.push(p->right);
                 q.pop();
            
            }
            result.push_back(m);
        }

  
       return result; 
    }
};

注意queue容器的用法。Push front()

以及queue<listnode*>而不是<listnode>

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页