`

【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(其中之一)

四,源码


分享到:
评论

相关推荐

    LeetCode解题总结

    2.10 改变链表中的元素位置2.11 LRU Cache(设计题) 3. 字符串 3.1 判断字符串是否为回文 3.2 实现strStr() 3.3 字符串转为int(atoi) 3.4 二进制树相加 3.5 最长回文字符串 3.6 正则表达式匹配[hard] 3.7 正则...

    算法面试题500

    第一篇 面试题 ...................................................................................1.2.10. 求二叉树中节点的最大距离................................................................ 37

    世界500强面试题.pdf

    1.4.5. 求一个矩阵中最大的二维矩阵(元素和最大) ........................................ 86 1.4.6. 强大的和谐 ........................................................................................ 90 ...

    javalruleetcode-leetcode:leetcode

    84.柱状图中最大的矩形 85.最大矩形 94.二叉树的中序遍历 96.不同的二叉搜索树 98.验证二叉搜索树 101.对称二叉树 102.二叉树的层序遍历 104.二叉树的最大深度 105.从前序遍历和中序遍历序列构造二叉树 114.二叉树展

    数据结构与算法:C++描述

    第11章 搜索树 319 11.1 二叉搜索树 320 11.1.1 基本概念 320 11.1.2 抽象数据类型BSTree和 IndexedBSTree 321 11.1.3 类BSTree 322 11.1.4 搜索 322 11.1.5 插入 323 11.1.6 删除 324 11.1.7 类DBSTree 326 11.1.8 ...

    数据结构算法与应用-C__语言描述

    第11章 搜索树 319 11.1 二叉搜索树 320 11.1.1 基本概念 320 11.1.2 抽象数据类型BSTree和 IndexedBSTree 321 11.1.3 类BSTree 322 11.1.4 搜索 322 11.1.5 插入 323 11.1.6 删除 324 11.1.7 类DBSTree 326 11.1.8 ...

    C++语言描述(PDF合集)

    第11章 搜索树 319 11.1 二叉搜索树 320 11.1.1 基本概念 320 11.1.2 抽象数据类型BSTree和 IndexedBSTree 321 11.1.3 类BSTree 322 11.1.4 搜索 322 11.1.5 插入 323 11.1.6 删除 324 11.1.7 类DBSTree 326 11.1.8 ...

    数据结构算法与应用-C++语言描述

    第11章 搜索树 319 11.1 二叉搜索树 320 11.1.1 基本概念 320 11.1.2 抽象数据类型BSTree和 IndexedBSTree 321 11.1.3 类BSTree 322 11.1.4 搜索 322 11.1.5 插入 323 11.1.6 删除 324 11.1.7 类DBSTree 326 11.1.8 ...

    lrucacheleetcode-algorithms:算法

    lru缓存leetcode 问题 # 标题 已提交 关联 标签 1 二和 是的 ...直方图中最大的矩形 是的 85 最大矩形 不 88 合并排序数组 是的 100 同一棵树 是的 102 二叉树级别顺序遍历 是的 104 二叉树的最大深度

    ACM常用代码

    中从低到高的第 i 位 3.模取幂运算 4.求解模线性方程 5.求解模线性方程组(中 国余数定理) 6.筛法素数产生器 7.判断一个数是否素数 图论: 1.Prim 算法求最小生成 树 2.Dijkstra 算法求单源 最短路径 3.Bellman-ford ...

    数据结构算法与应用(C++语言描述).rar

    第11章 搜索树 319 11.1 二叉搜索树 320 11.1.1 基本概念 320 11.1.2 抽象数据类型BSTree和 IndexedBSTree 321 11.1.3 类BSTree 322 11.1.4 搜索 322 11.1.5 插入 323 11.1.6 删除 324 11.1.7 类DBSTree 326 11.1.8 ...

    数据结构C++描述

    第11章 搜索树 319 11.1 二叉搜索树 320 11.1.1 基本概念 320 11.1.2 抽象数据类型BSTree和 IndexedBSTree 321 11.1.3 类BSTree 322 11.1.4 搜索 322 11.1.5 插入 323 11.1.6 删除 324 11.1.7 类DBSTree 326 11.1.8 ...

    数据结构 C++描述

    第11章 搜索树 319 11.1 二叉搜索树 320 11.1.1 基本概念 320 11.1.2 抽象数据类型BSTree和 IndexedBSTree 321 11.1.3 类BSTree 322 11.1.4 搜索 322 11.1.5 插入 323 11.1.6 删除 324 11.1.7 类DBSTree 326 11.1.8 ...

    数据结构、算法与应用--C++语言描述

    第11章 搜索树 319 11.1 二叉搜索树 320 11.1.1 基本概念 320 11.1.2 抽象数据类型BSTree和 IndexedBSTree 321 11.1.3 类BSTree 322 11.1.4 搜索 322 11.1.5 插入 323 11.1.6 删除 324 11.1.7 类DBSTree 326 11.1.8 ...

    数据结构(C语言描述)

    第11章 搜索树 319 11.1 二叉搜索树 320 11.1.1 基本概念 320 11.1.2 抽象数据类型BSTree和 IndexedBSTree 321 11.1.3 类BSTree 322 11.1.4 搜索 322 11.1.5 插入 323 11.1.6 删除 324 11.1.7 类DBSTree 326 11.1.8 ...

    数据结构算法与应用-C C++语言描述

    第11章 搜索树 319 11.1 二叉搜索树 320 11.1.1 基本概念 320 11.1.2 抽象数据类型BSTree和 IndexedBSTree 321 11.1.3 类BSTree 322 11.1.4 搜索 322 11.1.5 插入 323 11.1.6 删除 324 11.1.7 类DBSTree 326 11.1.8 ...

    数据结构算法与应用-C++语言描述.rar

    第11章 搜索树 319 11.1 二叉搜索树 320 11.1.1 基本概念 320 11.1.2 抽象数据类型BSTree和 IndexedBSTree 321 11.1.3 类BSTree 322 11.1.4 搜索 322 11.1.5 插入 323 11.1.6 删除 324 11.1.7 类DBSTree ...

Global site tag (gtag.js) - Google Analytics