1. 程式人生 > >多行列印二叉樹

多行列印二叉樹

在此程式碼中,用到了兩個佇列,佇列1用於進行列印、遍歷操作,佇列2用於臨時儲存資料,程式碼如下:

vector<vector<int> > Print(TreeNode* pRoot) {
      vector<vector<int> > v;
      if(NULL == pRoot)
           return v;
      typedef TreeNode Node;
      queue<Node*> q1, q2;
      int index = 0;
      q1.push(pRoot);
      while
(!q1.empty()) { v.resize(index+1); int size = q1.size(); v[index].resize(size); for(int i = 0; i < size; ++i) { Node* temp = q1.front(); q1.pop(); v[index][i] = temp->val; q2.push(temp); } for
(int i = 0; i < size; ++i) { Node* temp = q2.front(); q2.pop(); if(temp->left) q1.push(temp->left); if(temp->right) q1.push(temp->right); } ++index; } return
v; }