劍指offer---把二叉樹列印成多行

來源:互聯網
上載者:User

標籤:public   ack   odi   bsp   http   pre   ref   sub   www   

題目:把二叉樹列印成多行

要求:從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。

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

 

解題代碼:

 1 class Solution { 2 public: 3     vector<vector<int> > Print(TreeNode* pRoot) { 4         vector<vector<int> > res; 5         vector<int> subRes; 6         if(pRoot == nullptr) 7             return res; 8  9         int currentLevel = 1;10         int nextLevel = 0;11         queue<TreeNode*> q;12         q.push(pRoot);13 14         while(!q.empty()){15             TreeNode* temp = q.front();16             subRes.push_back(temp->val);17             q.pop();18 19             if(temp->left){20                 q.push(temp->left);21                 nextLevel++;22             }23             if(temp->right){24                 q.push(temp->right);25                 nextLevel++;26             }27             currentLevel--;28             if(currentLevel == 0){29                 res.push_back(subRes);30                 subRes.clear();31                 currentLevel = nextLevel;32                 nextLevel = 0;33             }34         }35         return res;36     }37 };

 

劍指offer---把二叉樹列印成多行

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.