zoukankan      html  css  js  c++  java
  • 剑指Offer——把二叉树打印成多行

    题目描述:

    从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。


    分析:

     二叉树的层次遍历,利用队列。


    代码:

     1 /*
     2 struct TreeNode {
     3     int val;
     4     struct TreeNode *left;
     5     struct TreeNode *right;
     6     TreeNode(int x) :
     7             val(x), left(NULL), right(NULL) {
     8     }
     9 };
    10 */
    11 class Solution {
    12 public:
    13     vector<vector<int> > Print(TreeNode* pRoot) {
    14         vector<vector<int> > res;
    15         if(pRoot == NULL) return res;
    16         queue<TreeNode*> q1, q2;
    17         q1.push(pRoot);
    18         while(1) {
    19             vector<int> v1;
    20             while(!q1.empty()) {
    21                 TreeNode* top = q1.front();
    22                 v1.push_back(top->val);
    23                 if(top->left) q2.push(top->left);
    24                 if(top->right) q2.push(top->right);
    25                 q1.pop();
    26             }
    27             res.push_back(v1);
    28             if(q2.empty()) break;
    29             vector<int> v2;
    30             while(!q2.empty()) {
    31                 TreeNode* top = q2.front();
    32                 v2.push_back(top->val);
    33                 if(top->left) q1.push(top->left);
    34                 if(top->right) q1.push(top->right);
    35                 q2.pop();
    36             }
    37             res.push_back(v2);
    38             if(q1.empty()) break;
    39         }
    40         return res;
    41     }
    42 };
  • 相关阅读:
    P2168 [NOI2015]荷马史诗
    P3195 [HNOI2008]玩具装箱TOY
    P1972 [SDOI2009]HH的项链
    P2339 提交作业usaco
    P3974 [TJOI2015]组合数学
    P2831 愤怒的小鸟
    [校内模拟题4]
    P3952 时间复杂度
    P3531 [POI2012]LIT-Letters
    2019.10.1 qbxt模拟题
  • 原文地址:https://www.cnblogs.com/jacen789/p/7747804.html
Copyright © 2011-2022 走看看