zoukankan      html  css  js  c++  java
  • 二叉树的层次遍历

    按层遍历一棵二叉树,规律为从根节点开始,每访问一个节点时,如果该节点有子节点,则将子节点放到一个队列的末尾,接下来依次从队列头部取出元素,直到队列为空。

    //==================================================================
    // 《剑指Offer——名企面试官精讲典型编程题》代码
    // 作者:何海涛
    //==================================================================
    
    // 面试题32(一):不分行从上往下打印二叉树
    // 题目:从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印。
    
    #include <cstdio>
    #include "..UtilitiesBinaryTree.h"
    #include <deque>
    
    void PrintFromTopToBottom(BinaryTreeNode* pRoot)
    {
        if (pRoot == nullptr)
            return;
    
        std::deque<BinaryTreeNode *> dequeTreeNode;
    
        dequeTreeNode.push_back(pRoot);
    
        while (dequeTreeNode.size())
        {
            BinaryTreeNode *pNode = dequeTreeNode.front();
            dequeTreeNode.pop_front();
    
            printf("%d ", pNode->m_nValue);
    
            if (pNode->m_pLeft)
                dequeTreeNode.push_back(pNode->m_pLeft);
    
            if (pNode->m_pRight)
                dequeTreeNode.push_back(pNode->m_pRight);
        }
    }
  • 相关阅读:
    企业级 SpringBoot 教程 (九)springboot整合Redis
    03 网格系统
    02 表单
    01 排版
    客户端调用webSerices
    sql 一行转多行
    sql 多行转一行
    时间差计算 Stopwatch
    sql 游标
    Linq连接查询
  • 原文地址:https://www.cnblogs.com/larry-xia/p/10701700.html
Copyright © 2011-2022 走看看