面试常考手写代码之--二叉树层次遍历(BFS)

2023-11-19

 

struct BTNode_s{

    int value;

    BTNode_s* pLeft;

    BTNode_s* pRight;

}BTNode;

void BFS(BTNode* pRoot)

{

    if(pRoot ==NULL)

        return;

    std::deque<BTNode*> treeDeque;

    treeDeque.push_back(pRoot);

 

    while(!treeDeque.empty())

    {

        BTNode* pNode =treeDeque.front();

        printf("%d\t", pNode->value);

        

        if(pNode->pLeft!= NULL)

        {

            treeDeque.push_back(pNode->pLeft);

        }

 

        if(pNode->pRight!= NULL)

        {

            treeDeque.push_back(pNode->pRight);

        }

    }

}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

面试常考手写代码之--二叉树层次遍历(BFS) 的相关文章

随机推荐

  • 代码迁移_三种类型的代码迁移

    代码迁移 随着代码变老 通常有必要对其进行现代化 有以下动机 我们找到了一种更好的方法 我们需要出于支持 许可或仅出于最佳实践的原因而更新核心库 技术 我们需要在更现代的基础架构上运行该软件 简而言之 几年前编写的软件很少能完美地在我们现有
  • 自变化折线图(两周数据)

  • 小饼干问题 find寻找字符串 substr截取字符串

    所有人的回复都由大写字母 小写字母与 组成 占一行 MJJ认为只要其中包含了连续的10个小写字母 zailaiyihe 就意味着这个人想要再来一盒 题目描述 现在MJJ准备给每一个想要 再来一盒 的人买一盒小饼干 他想知道总共需要买几盒小饼
  • 【多线程例题】顺序打印abc线程

    顺序打印 进阶版 方法一 三个线程竞争同一个锁 通过count判断是否打印 方法二 三个线程同时start 分别上锁 从a开始 打印后唤醒b 三个线程分别打印A B C 方法一 通过count计数打印 三个线程上同样的锁 打印一个 召唤所有
  • msi afterburner怎么调节风扇转速教程

    msi afterburner是集超频 信息检测和参数调节等诸多功能为一体的显卡调节控制软件 要怎么使用msi afterburner调节风扇转速呢 很多小伙伴都不清楚怎么设置吧 下面就来看看详细操作 1 根据Afterburner软件的检
  • java String 转utf-8编码

    Get XML String of utf 8 return XML Formed string public static String getUTF8XMLString String xml A StringBuffer Object
  • Docker学习笔记(四)-docker中的网络与存储

    前言 要了解docker的网络和存储 首先需要知道docker的资源隔离机制 namespace 让某个特定的全局系统资源通过抽象方法使namespace 中的进程看起来拥有它们自己的隔离的全局系统资源实例 The purpose of e
  • 白盒测试怎么做?

    目录 前言 一 什么是白盒测试 二 白盒测试的分类 三 白盒测试的设计方法 四 白盒测试静态方法 五 白盒测试动态方法 六 白盒测试的特点 七 总结 前言 在企业内部 软件测试工程师基本处于 双高 地位 即地位高 待遇高 可以说他们的职业前
  • mysql yum的时候报错处理方法

    报错内容 警告 var cache yum x86 64 7 mysql57 community packages mysql community server 5 7 37 1 el7 x86 64 rpm 头V4 RSA SHA256
  • 键盘的hid描述符例子

    譬如有如下的Report Descriptor 譬如有如下的Report Descriptor C C code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
  • 【无标题】乌邦图基础

    1 gt ubuntu的操作 图形界面 当我们ubuntu开启时 会自动进入桌面 桌面拥有很多图标 可以直接通过鼠标点击来完成操作 只适用于不走开发型的纯小白 成本很高 字符界面 没有其他任何的图案和标志 只有黑漆漆的对话框 和冰冷的字眼
  • 基于深度学习实现实时视频目标检测

    前言 实时视频目标检测是计算机视觉领域的研究热点之一 其应用场景包括智能监控 自动驾驶 机器人视觉等多个领域 深度学习技术的快速发展使得实时视频目标检测变得更加可行和准确 本文提出一种基于深度学习实现的实时视频目标检测系统 使用Python
  • 服务器运行python代码报错:intall python Extension

    当我安装时候又报错 WARNING Retrying Retry total 4 connect None read None redirect None status None after connection broken by New
  • 学生管理系统(C语言)

    说明 本程序的基本功能由单链表实现 满足基本的增删改查等功能 包括对文件的读写 由于测试数据较少 项目的鲁棒性可能不是很好 基本功能 退出 输入成绩 计算每名学生加权平均成绩 计算每门课程平均分 按分数降序排列 按学号升序排序 按姓名在字典
  • 如何通过手机拍照生成三维模型

    使用过易模的用户都知道 易模是通过手机扫描拍摄来进行建模的 而手机拍照建模是除扫描拍摄建模方式外迭代升级的一种全新的建模方式 使用手机拍照来进行建模 我们只需要按照要求拍摄并且上传所需建模物体的照片 系统就会自动生成我们所拍摄的物体模型 目
  • Jenkins免密登录gitlab拉取代码

    折腾了一下午 终于弄好了 网上很多博客写的都不清楚 所以记录一下 环境说明 服务器 说明 192 168 199 1 Jenkins 192 168 199 2 gitlab 操作步骤 1 生成公匙 在jenkins服务器执行 ssh ke
  • 2022年华中杯A题(暂时做完第一小问,附完整Python源码)

    目的 虽然比赛时间过去了 但还是可以拿来练一练优化问题的解决 加强自己对于优化算法的巩固 文章目录 目录 目的 前言 一 题目 二 思路 1 第一小题 分批算法 三 程序 1 计算相似度的函数 2 分批算法主要部分 初始化 1 首先生成想要
  • leetcode刷题之字符串处理

    3 Longest Substring Without Repeating Characters Given a string find the length of the longest substring without repeati
  • java common-lang,Maven包错误:org.apache.commons-lang不存在(Java)

    I m using MyEclipse to develop a really simple Java Struts project Everything was working fine until I wanted to use the
  • 面试常考手写代码之--二叉树层次遍历(BFS)

    struct BTNode s int value BTNode s pLeft BTNode s pRight BTNode void BFS BTNode pRoot if pRoot NULL return std deque