• [华为机试练习题]42.求二叉树的深度和宽度


    题目

    题目标题:

    求二叉树的宽度和深度
    给定一个二叉树,获取该二叉树的宽度和深度。   
    
    比如输入
       a
      / 
     b   c
    /  / 
    d e f g
    
    返回3.
    

    接口说明
    原型:

         int GetBiNodeInfo(BiNode &head, unsigned int *pulWidth, unsigned int *pulHeight)
    

    输入參数:

         head   须要获取深度的二叉树头结点
    

    输出參数(指针指向的内存区域保证有效):

         pulWidth   宽度
         pulHeight  高度
    

    返回值:

         0          成功
         1          失败或其它异常
    

    练习阶段:

    中级 
    

    代码

    /*---------------------------------------
    *   日期:2015-07-03
    *   作者:SJF0115
    *   题目:求二叉树的深度和宽度
    *   来源:华为机试练习题
    -----------------------------------------*/
    #include <iostream>
    #include "OJ.h"
    #include <string>
    #include <queue>
    using namespace std;
    
    /*
    Description  
             给定一个二叉树,获取该二叉树的宽度深度。

    Prototype int GetBiNodeInfo(BiNode &head, unsigned int *pulWidth, unsigned int *pulHeight) Input Param head 须要获取深度的二叉树头结点 Output Param pulWidth 宽度 pulHeight 高度 Return Value 0 成功 1 失败或其它异常 */ int GetBiNodeInfo(BiNode &head, unsigned int *pulWidth, unsigned int *pulHeight){ if(&head == NULL || pulWidth == NULL || pulHeight == NULL){ return 1; }//if int maxWidth = 0; int curWidth = 0; int height = 0; BiNode* root = &head; queue<BiNode*> curQueue; queue<BiNode*> nextQueue; curQueue.push(root); // 层次遍历 while(!curQueue.empty()){ ++height; curWidth = 0; while(!curQueue.empty()){ ++curWidth; BiNode* node = curQueue.front(); curQueue.pop(); // 左子结点不为空 if(node->left != NULL){ nextQueue.push(node->left); }//if // 右子节点不为空 if(node->right != NULL){ nextQueue.push(node->right); }//if }//while // 更新最大宽度 if(curWidth > maxWidth){ maxWidth = curWidth; }//if swap(curQueue,nextQueue); }//while *pulWidth = maxWidth; *pulHeight = height; return 0; }

  • 相关阅读:
    linux-01Red Hat Enterprise Linux 7(RHEL7)配置静态IP地址
    Linux下Tomcat重新启动
    获取root权限
    -save 和 --save-dev的区别
    周五的听歌时间
    十月第二周计划
    国庆计划
    周末计划
    前端基础进阶系列
    前端基础进阶(二):执行上下文详细图解
  • 原文地址:https://www.cnblogs.com/zsychanpin/p/7099435.html
Copyright © 2020-2023  润新知