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

2023-02-12,,,,

题目描述

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

解题思路

按照从左往右从上到下的顺序打印节点,需要我们维护一个队列,这个队列放入元素的顺序是访问队头节点(起始先放入根节点),则若当前节点的左右子树非空,则将左右子节点依次放入队尾,对所有节点执行此操作,然后按顺序遍历队列。

C++代码实现:

/*
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==NULL){
return result;
}
queue<TreeNode*> que; que.push(root);
while(!que.empty()){
if(root->left!=NULL){
que.push(root->left);
}
if(root->right!=NULL){
que.push(root->right);
}
int val=root->val;
result.push_back(val);
que.pop();
root=que.front();
}
return result;
} };

剑指offer 23:从上往下打印二叉树的相关教程结束。

《剑指offer 23:从上往下打印二叉树.doc》

下载本文的Word格式文档,以方便收藏与打印。