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

来源:互联网 发布:滑板淘宝店 编辑:程序博客网 时间:2024/06/05 14:06

题目描述

从上往下打印出二叉树的每个节点,同层节点从左至右打印。
解析:
这是二叉树的层次遍历,借助于一个队列可以实现。首先将根节点入队列,然后队列首元素出队列,打印该节点的值。若该节点有左孩子结点则将左孩子结点入队列,若该节点有右孩子节点则将右孩子节点入队列。直到队列为空。
代码如下:
/*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;        if(!root)            return result;        queue<TreeNode*> q;        q.push(root);        while(!q.empty()){            root=q.front();            q.pop();            result.push_back(root->val);            if(root->left)                q.push(root->left);            if(root->right)                q.push(root->right);        }        return result;    }};


阅读全文
0 0