首页 > 编程语言 >【数据结构与算法面试题】二叉树节点的最大距离

【数据结构与算法面试题】二叉树节点的最大距离

时间:2023-06-14 20:36:37浏览次数:71  
标签:面试题 遍历 max NULL length 二叉树 数据结构 root


题目来源“数据结构与算法面试题80道”。

【数据结构与算法面试题】二叉树节点的最大距离_数据结构

问题分析:涉及的知识点是二叉树的遍历,遍历的方法主要有:

  • 先序遍历
  • 中序遍历
  • 后序遍历
  • 层次遍历

在本题中,使用先序遍历的方法。

方法:

void m_length(BSTreeNode *root, int *length, int *max_length){
    if (NULL == root ||
        (NULL == root->m_pLeft && NULL == root->m_pRight)){
        if ((*length) > (*max_length)) (*max_length) = (*length);
        return;
    }
    (*length) ++;
    m_length(root->m_pLeft, length, max_length);
    (*length) --;

    (*length) ++;
    m_length(root->m_pRight, length, max_length);
    (*length) --;
}


标签:面试题,遍历,max,NULL,length,二叉树,数据结构,root
From: https://blog.51cto.com/u_16161414/6480410

相关文章

  • 数据结构和算法——旋转打印链表
    1、问题描述输入参数nn为正整数,如输入n=5n=5,则按行打印如下的数字:2、问题的理解这个问题是将数字1…n21…n2按照一圈一圈的方式......
  • python基础知识——内置数据结构(字典)
      字典是有“键-值”对组成的集合,字典中的“值”通过“键”来引用。“键-值”对之间用逗号隔开,并且被包含在一对花括号中。1、字典的创建格式dictionary_name={key1:value1,key2:value2,...}创建空的字典dictionary_name={}例如dict={'b':'beijing','s':......
  • 杭州中华财险面试题___整理汇总
    中华保险 ========================================5.9 中华保险 一面1.讲项目(银行),问之前的保险项目,二者区别2.接口自动化框架3.接口用例设计4.什么时候做接口自动化,跑的频率5.迭代一次,测试开发占比时间6.上个项目测试难点,怎么解决的7.ui自动化主要做哪些8.生产环境和预发布......
  • 肖sir___杭州2023年5月份面试__面试题归纳
    5月份杭州面试汇总===============================友声一面1、自我介绍2、讲下你电商支付链路是怎么样的3、电商项目中用到了哪些Linux命令4、jmter查询借口  参数 ID ,订单号,类型 枚举值???写测试用例5、SQL语句修改及统计数量等等6、查看过往日志 、并搜索关键字用什么语句......
  • 挑战数据结构和算法面试题——二叉搜索树的后序遍历
    分析:根据二叉查找树的定义,二叉查找树或者是一棵空二叉树,或者是具有一下特性的二叉树:若它的左子树不为空,则左子树上的所有结点的值均小于根节点的值;若它的右子树不为空,则右子树上的所有结点的值均小于根节点的值;它的左右子树又分别是二叉查找树。结合二叉树的后序遍历,则初始序列的最......
  • 【数据结构和算法面试题】左旋转字符串
    问题分析:本题是常见的旋转字符串的问题,解决的方法是两步旋转的方法:方法:voiddo_reverse(char*p_start,char*p_end){ if(NULL==p_start||NULL==p_end||p_start>p_end)return; chartmp; while(p_start<p_end){ tmp=*p_start; *p_start=*p_end; *p_end......
  • 【数据结构与算法面试题】子数组的最大和
    题目来源“数据结构与算法面试题80道”。问题分析:在数组的每一个位置处保存当前的最大值,当前的最大值组成为:解决方案:intget_max_subarray(int*a,intlength,bool&is_array_ok){ if(NULL==a||length<=0){ is_array_ok=false; return0; } int*p_h_a=(int*......
  • 数据结构和算法——二叉排序树
    一、二叉排序树对于无序的序列“62,58,88,47,73,99,35,51,93,29,37,49,56,36,48,50”,是否存在一种高效的查找方案,使得能够快速判断在序列中是否存在指定的数值?二叉排序树是一种简单,高效的数据结构。二叉排序树,又称为二叉查找树。二叉排序树或者是一棵空树,或者是具有以下性质的二叉树:若其左子树不为......
  • 挑战数据结构和算法面试题——最大差值
    题目来自伯乐在线,欢迎有不同答案的同学来一起讨论。分析:基本方法是遍历数组,找到当前值前面所有数组元素的最小值。方法:intget_max_distance(int*a,constintn){intmax_distance=0;//纪录最大距离if(n==0)returnmax_distance;intmin=a[0];//纪录最小的......
  • 【数据结构与算法面试题】求和
    题目来源“数据结构与算法面试题80道”。问题分析:可以使用类的构造方法,在类的每次实例化对象时都会调用构造方法,那么只需要实例化n个对象,就会调用n次构造方法,这就模拟了循环的过程,此时,只需要有一个全局变量记录累加的值即可。方法:#include<stdio.h>classcalnum{ public: cal......