`

【100题】第十一题(二叉树中节点的最大距离)

 
阅读更多

一,题目:

如果把二叉树看成一个图,父子节点之间的连线看成是双向的(无向图),定义"距离"为两节点之间边的个数。写一个程序,求一棵二叉树中相距最远的两个节点之间的距离。

二,思路

误导思路:不要以为求树的高度。

正确思路:求“图”中任意两个节点之间,相距最远的的两个节点之间的距离。

求解步骤:A,经过根节点,左边最深的点到右边最深的点的距离。

B,不经过根节点,而是左子树或右子树中最大距离,取其大者。

三,图解

情况A: 情况B:

A A

/ \/ \

B C B O

/ \ / \ / \

D E F G C D

/\

E F

/\

G H

情况A:最大距离经过顶点D-B-A-C-F(其中之一)

情况B:最大距离不经过顶点G-E-C-B-D-F-H(其中之一)

四,源码


分享到:
评论

相关推荐

    关于数据结构树和二叉树的习题

    6.设森林 F 对应的二叉树为 B,它有 m 个结点,B 的根为 p,p 的右子树结点个数为 n,森林 F 中第一棵树的结点个数是( )。 在这里,我们可以根据森林 F 的定义,得到第一棵树的结点个数为 m-n。 7.树是结点...

    第5章 树与二叉树习题参考答案.pdf

    6.若一棵完全二叉树的第4层(根结点在第0层)有7个结点,则这棵完全二叉树的结点总数是11。 完全二叉树是一种特殊的二叉树,它的每个节点的度都是0或2。结点总数可以根据层次和结点个数计算出来。 7.在深度为k的...

    数据结构中二叉树各种题型详解及程序.docx

    12. **求二叉树中节点的最大距离**:需要找到最大路径的两个叶节点,可以通过层次遍历并维护最大距离。 13. **根据前序和中序遍历序列重建二叉树**:前序遍历的第一个元素是根节点,中序遍历中根节点的左侧是左子树...

    算法面试经典 100题

    求二叉树中节点的最大距离 **知识点**:本题考查二叉树的遍历及最长路径的计算。 **解题思路**: 1. **深度优先搜索**:使用深度优先搜索遍历二叉树。 2. **递归计算高度**:计算左右子树的高度,从而得出最大距离...

    二叉树题目列表1

    12. **求二叉树中节点的最大距离**:需要遍历整个树,记录最大路径长度。 13. **由前序遍历序列和中序遍历序列重建二叉树**:根据前序遍历的第一个元素作为根节点,再根据中序遍历找到根节点的位置,从而划分左右...

    微软、谷歌、百度等公司经典面试100题[第101-170题].pdf

    - **题目描述**:对于一棵排序二叉树,找出距离中位数最近且大于中位数的结点。 - **解决方案**:可以通过二分查找思想,结合中序遍历的结果来定位。 **15. 数列中符合条件的数对计数** - **题目描述**:设计一个...

    数据结构c语言二叉树的所以操作程序

    压缩包中的文件名可能代表了这些操作的具体实现,例如`Bo6-2.cpp`可能是二叉树操作的第二部分,`Main3-2.cpp`可能是主函数,`Func3-2.cpp`可能是包含特定功能的函数,而`C3-2.H`可能是一个头文件,包含了二叉树节点...

    算法系列15天速成 第十一天 树操作(上)

    8. 结点的层数:节点距离根节点的层数。 9. 有序树:每个节点的子节点都有固定顺序的树。 10. 无序树:子节点之间没有固定顺序的树。 接下来,我们来看一下二叉树(Binary Tree)。二叉树是树的一种特殊形式,其中...

    算法大全-面试题-链表-栈-二叉树-数据结构.docx

    在单链表中,每个节点只有一个指向后继节点的指针,而链表的末尾节点指向null。在C#中,可以使用类`Link`来表示链表节点,如以下代码所示: ```csharp public class Link { public Link Next; public string Data...

    C语言的习题练习面试的题

    在本题中,二叉树没有明确指出左右子节点的区别,因此我们只需要关注节点之间的上下关系。 #### 2. 关键概念 - **公共祖先**:对于两个节点,在它们共同的祖先节点中,距离它们最近的那个节点被称为最近公共祖先。 ...

    清华大学数据结构模拟试题.

    11. B-树的性质,非叶节点的某关键字K,比K小的最大关键字和比K大的最小关键字在其最下层。 12. 连通无向图的深度遍历序列唯一可以唯一确定图。 13. 有向图的深度遍历序列唯一不能唯一确定图。 14. 冒泡排序基本有序...

    2018年重庆邮电大学802数据结构真题高清原版PDF.pdf

    9. **二叉树节点数**:问题9中计算了只有度为0和度为2的结点的二叉树的节点数量,正确答案是A,即使用公式2^(h-1)来计算最大节点数。 10. **数组存储**:问题10中提到数组按行优先存放时,计算特定元素地址的问题,...

    湖北省武汉为明实验学校2013年中考数学 基础题训练八(无答案) 新人教版

    - 第13题是关于二叉树的节点总数规律,每增加一层,节点数比上一层多2,第十层的节点数为2^(10)-1,即1023。 3. **解答题**: - 第17题要求解方程153xx ,这是一元二次方程,可以使用求根公式解决。 - 第18...

    [公众号蓝蓝考研]2015年计算机408统考真题解析1

    题目中提到了从`V4`开始,Kruskal算法会选择`(V1, V4)`作为第一条边,而Prim算法可能在第二步选择权值为8的边。 7. **二分查找与判定树**:二分查找是一种效率较高的查找方法,其判定树是一棵二叉排序树。选项中给...

    山东大学2002数据结构试题及答案.pdf

    试题中给出了一个序列,要求写出起泡排序的第一趟结果和堆排序的初始堆。起泡排序是基于比较的排序方法,堆排序则是利用堆这种数据结构进行的排序方法。 6. 哈夫曼编码 哈夫曼编码是一种用于无损数据压缩的最优前缀...

    11道数据结构和算法设计与分析习题

    5. **二叉树中两个节点的最小距离**:可以通过深度优先搜索(DFS)或广度优先搜索(BFS)计算最近公共祖先,然后分别计算到两个节点的距离。 6. **二叉树的层次遍历**:使用队列实现BFS,每层节点都按照顺序添加到...

    前端大厂最新面试题-算法.docx

    "前端大厂最新面试题-算法.docx"是一份集合了多种算法知识点和经典面试题的资源。本资源摘要将对标题、描述、标签和部分内容进行详细的知识点生成。 算法知识总结 * 排序算法:冒泡排序、选择排序、插入排序、希尔...

    2015创新工场校招研发笔试题

    在一个有8个int数据的数组中,找出最大和第二大元素至少需要进行多少次比较: - **知识点概述**: - 比较排序是排序算法的一种,通过对元素进行比较来确定它们之间的大小顺序。 - **答案解析**: - 要找出数组中...

Global site tag (gtag.js) - Google Analytics