Algorithm 如何找到树的深度

Algorithm 如何找到树的深度,algorithm,recursion,Algorithm,Recursion,我有一个可以嵌套相同类实例的类: class SomeClass { List<SomeClass> SomeClasses; } class-SomeClass { 列出一些类别; } 而且。。。我需要知道在链父-子中,什么是最高金额 就是这样, 我对此很困惑,所以我甚至不知道如何开始做。最有可能的情况是,没有递归就无法完成此操作。鉴于任何SomeClass实例都会形成一棵树,您可能正在寻找树的深度。如果是这种情况,您确实可以使用递归:编写一个函数,该函数接受Some

我有一个可以嵌套相同类实例的类:

class SomeClass
{
    List<SomeClass> SomeClasses;
}
class-SomeClass
{
列出一些类别;
}
而且。。。我需要知道在链
父-子
中,什么是最高金额

就是这样,


我对此很困惑,所以我甚至不知道如何开始做。最有可能的情况是,没有递归就无法完成此操作。

鉴于任何SomeClass实例都会形成一棵树,您可能正在寻找树的深度。如果是这种情况,您确实可以使用递归:编写一个函数,该函数接受
SomeClass
,并返回1加上应用于
SomeClass
列表所形成的列表的最大值

例如,这里是JS中的一个实现:

const depth=({things})=>1+Math.max(0,…things.map(depth))
深度({
事情:[
{
事情:[
{
事物:[]
},
{
事情:[
{
事物:[]
}
]
}
]
}
]
});
// 4

不幸的是,我无法真正理解您的图表或您所说的“链中最高金额”的含义。假设任何
SomeClass
实例都形成一棵树,那么您可能正在寻找树的深度。如果是这种情况,您确实会使用递归:编写一个函数
intdepth(SomeClass c)
返回
1+SomeClass.Select(Depth).Concat(new[]{0}).Max()
@AsadSaeeduddin-是的,我需要树的深度。谢谢,我将试用你的功能。