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

Posted fancy-li

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer 23:从上往下打印二叉树相关的知识,希望对你有一定的参考价值。

题目描述

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

解题思路

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

 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从上往下打印二叉树

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

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

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

Java 剑指offer(31)从上往下打印二叉树

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