Java数据结构二叉树深度递归调用算法求内部算法过程详解

根据上面的二叉树代码,递归过程是:f(1)=f(2)+1 > f(3) +1 ? f(2) + 1 : f(3) +1 f(2) 跟f(3)计算类似上面,要计算左右结点,然后取大者 所以计算顺序是f(4.left) = 0, f(4.right) = 0 f(4) = f(4.right) + 1 = 1 然后计算f(5.left) = 0,f(5.right) =...
Java数据结构二叉树深度递归调用算法求内部算法过程详解
二叉树 1 2 34 5 6 7这个二叉树的深度是3,树的深度是最大结点所在的层,这里是3.
应该计算所有结点层数,选择最大的那个。
根据上面的二叉树代码,递归过程是:
f(1)=f(2)+1 > f(3) +1 ? f(2) + 1 : f(3) +1
f(2) 跟f(3)计算类似上面,要计算左右结点,然后取大者
所以计算顺序是f(4.left) = 0, f(4.right) = 0
f(4) = f(4.right) + 1 = 1
然后计算f(5.left) = 0,f(5.right) = 0
f(5) = f(5.right) + 1 =1
f(2) = f(5) + 1 =2
f(1.left) 计算完毕,计算f(1.right) f(3) 跟计算f(2)的过程一样。
得到f(3) = f(7) +1 = 2
f(1) = f(3) + 1 =3
if(depleft>depright){ return depleft+1;}else{ return depright+1;}只有left大于right的时候采取left +1,相等是取right
2015-02-12
mengvlog 阅读 6 次 更新于 2025-07-19 13:03:33 我来答关注问题0
  • 二叉树 1 2 34 5 6 7这个二叉树的深度是3,树的深度是最大结点所在的层,这里是3.应该计算所有结点层数,选择最大的那个。根据上面的二叉树代码,递归过程是:f(1)=f(2)+1 > f(3) +1 ? f(2) + 1 : f(3) +1 f(2) 跟f(3)计算类似上面,要计算左右结点,然后取大...

  •  chiconysun 求高手解释下二叉树递归求深度问题

    这个算法的意思是,当前树的深度等于其左子树和右子树中较深的那一个的深度再加1 例如:您提供的图A的左子树深度为3,右子树的深度为3,此时A这棵树的深度就为4 再来考虑D和G,此时D的左子树深度为0,右子树深度为0,所以返回0+1 = 1 同理G也返回1 因此C和F返回2,而B和E返回3,最终A...

  •  hkylliu 数据结构中的二叉树中的递归怎么理解?

    divlist为一个数组,是一个全局变量,存储最终遍历结果。可能有的同学不熟悉JavaScript,node.firstElementChild与node.lastElementChild分别指父节点的第一个元素节点和最后一个元素节点,即对应父节点的左孩子和右孩子。二叉树是以DOM树的形式模拟 所谓递归可以分为两部分来理解:“递”和“归”。“递”指...

  •  誉祥祥知识 二叉树深度

    二叉树深度是指二叉树所有结点中最深的结点所在的层数。关于二叉树深度,可以从以下几点进一步理解:定义解释:二叉树的深度是从根结点开始,到树中最远叶子结点的最长路径上的结点数。结点与层数:根结点位于第1层。根结点的直接子结点位于第2层。以此类推,每一层的子结点都在下一层。计算深度的方法...

  •  文暄生活科普 二叉树的深度怎么算

    计算二叉树的深度,其实是一个递归的过程,简单明了。首先,如果树仅有一个节点,其深度即为1。接着,根据节点的结构,深度的计算有以下几种情况:如果根节点只有左子树,深度等于左子树的深度加1; 如果根节点只有右子树,深度等于右子树的深度加1; 如果根节点同时有左右子树,深度则是左右子树...

檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部