zoukankan      html  css  js  c++  java
  • 面试题23_从上往下打印二叉树

    题目描写叙述:

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


    解题思路:

    这道题考查二叉树的层次遍历。

    对于二叉树的先序遍历、中序遍历、兴许遍历。我们都比較熟悉,用递归方法实现,代码也很easy。

    对于层次遍历,我们在实现的时候,须要借助一个队列来辅助。

    依次将层次遍历的到的节点压入队列。再从队列中依次取出来打印。


    实现代码:

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



  • 相关阅读:
    Java's Volatile Keyword
    reflection
    Spring
    Stack
    Set
    Vector & ArrayList
    CreateFileDemo
    session原理
    multithreadingDemo
    REST风格
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/7383840.html
Copyright © 2011-2022 走看看