首页 > 其他 > 详细

从上往下打印二叉树(分层遍历)

时间:2015-09-01 21:25:23      阅读:350      评论:0      收藏:0      [点我收藏+]

  从上往下打印二叉树的每个节点,同一层的节点按照从左到右的顺序打印。

  从上到下打印二叉树的规律:每一次打印一个节点的时候,如果该节点有子节点,则把该节点的子节点放到一个队列的末尾。接下来到队列的头部取出最早进入队列的节点,重复前面的打印操作,直到队列中所有的节点都被打印出来为止。

  

struct TreeNode {
    int val;
    TreeNode* left;
    TreeNode* right;
};

void LevelOrder(BinaryTreeNode* root) {
    if (root == NULL) return;

    queue<BinaryTreeNode*> q;

    q.push(root);

    while (!q.empty()) {
        BinaryTreeNode* p = q.front();
        q.pop();

        cout<<p->val<<" ";

        if (p->left)
            q.push(p->left);

        if (p->right)
            q.push(p->right);
    }
}

 

从上往下打印二叉树(分层遍历)

原文:http://www.cnblogs.com/vincently/p/4776754.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!