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

    题目描述

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

    代码

    /*
    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) {
    		vector<vector<int> > ans;
            if (pRoot != NULL) {
                vector<int> vet;
                queue<TreeNode*> que;
                
                que.push(pRoot);
                que.push(NULL);
                
                TreeNode* cur;
                while (!que.empty()) {
                    cur = que.front();
                    que.pop();
                    if (cur == NULL) {
                        ans.push_back(vet);
                        vet.clear();
                        if (!que.empty()) {
                            que.push(NULL);
                        }
                    } else {
                        vet.push_back(cur->val);
                        if (cur->left != NULL) {
                            que.push(cur->left);
                        }
                        if (cur->right != NULL) {
                            que.push(cur->right);
                        }
                    }
                }
               
            }
            return ans;
        }
        
    };
    
  • 相关阅读:
    2021 发工资咯:)
    HDU-2021
    HDU-2020
    HDU-2019
    HDU-2018
    HDU-2017
    HDU-2016
    HDU-2015
    HDU-2014
    HDU-2013
  • 原文地址:https://www.cnblogs.com/jecyhw/p/6652045.html
Copyright © 2011-2022 走看看