《剑指offer》-从上往下打印二叉树

来源:互联网 发布:java读取zip文件内容 编辑:程序博客网 时间:2024/06/05 07:48

题目描述

从上往下打印出二叉树的每个节点,同层节点从左至右打印。


解法:将每一层的根节点存储到一个向量里面,从上到下,从左到右,判断是否存完比较有技巧,用到了一个变量num,来记录已经完成存储的个数,同时也用来终止存储的过程。

/*struct TreeNode {int val;struct TreeNode *left;struct TreeNode *right;TreeNode(int x) :val(x), left(NULL), right(NULL) {}};*/class Solution {public:    vector<int> PrintFromTopToBottom(TreeNode *root) {        vector<int> result;        vector<TreeNode*> array;  //用来存储根节点        if(root == NULL) return result;        int num = 0;        array.push_back(root);        while(num < array.size()) {  //判断是否存储完毕,存储的个数小于节点的个数。            TreeNode *temp = array[num++];            if(temp->left != NULL) array.push_back(temp->left);            if(temp->right != NULL) array.push_back(temp->right);            result.push_back(temp->val);        }        return result;    }};


0 0
原创粉丝点击