其他分享
首页 > 其他分享> > JZ22从上到下打印二叉树

JZ22从上到下打印二叉树

作者:互联网

 

思路

代码:

/*
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> res;
        if(root==NULL)  //如果当前节点为空,则返回空的列表
        {
            return res;
        }
        queue<TreeNode*>que;  //定义一个队列存放后面需要遍历的节点
        que.push(root);//将根节点入队
        while(!que.empty())//当队列不为空
        {
            TreeNode * node = que.front(); //对头节点出队列
            que.pop();//从栈顶移除当前已经遍历的节点
            res.push_back(node->val); //保存当前节点的值
            if(node->left!=NULL){//添加左子树
                que.push(node->left);
            }
            if(node->right!=NULL)//添加右子树
            {
                que.push(node->right);
            }
        }
        return res;
    }
};

 

标签:node,right,TreeNode,JZ22,que,二叉树,NULL,节点,从上到下
来源: https://www.cnblogs.com/gcter/p/15338773.html