• 剑指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;
        }
      
    };
  • 相关阅读:
    项目管理原则
    开发规范
    讲故事-如何才算确认了需求
    关于概要设计
    jQuery操作
    IE8,IE9,IE10绿色版,以及ColorPix
    机务UI设计小节
    Abstract Factory
    Flyweight
    Chain of Responsibility
  • 原文地址:https://www.cnblogs.com/fancy-li/p/11625161.html
Copyright © 2020-2023  润新知