【基础操作】层序打印二叉树

Posted on 2018-01-27 16:02  Unkn0wnnnnn  阅读(119)  评论(0)    收藏  举报

既然是层序打印的顺序,思路想到的第一个想法就是,先来先打印,后来后打印,所以以这个思路来看的话可以使用一个队列来一次存储二叉树中的每一个节点,而后依次出列,按照这个思路就可以轻松的层序遍历的方式打印出二叉树,具体实现源码如下:

vector<int> printByLevel(TreeNode *root, vector<int> path)//层序打印二叉树
{
    queue<TreeNode*>TreeNodeQueue;
    if(root==NULL)
        return path;
    TreeNodeQueue.push(root);
    TreeNode* pNode;
    while(!TreeNodeQueue.empty()){
        pNode=TreeNodeQueue.front();
        TreeNodeQueue.pop();
        path.push_back(pNode->val);
        if(pNode->left)
            TreeNodeQueue.push(pNode-left);
        if(pNode->right)
            TreeNodeQueue.push(pNode->right);
    }
    return path;
}