d1代表,如果不是这个第一个左孩子不是空树,它就会一直找下去,直到找到最后,记下左孩子的深度
d2代表,如果不是这个第一个右孩子不是空树,它就会一直找下去,直到找到最后,记下右孩子的深度
当然每次都会返回的左右深度的最大值,因为你要找的是森林的深度。
如果你不明白的话,你可以看一个比较简单的,就是求树的深度,再简单的就是求二叉树的深度,当这些深度你都会求了,森林的自然而然就会了。呵呵呵
不知道对你有没有帮助啊
题目中的代码为求森林深度的递归算法,由代码可知,森林的储存,表示形式为二叉树。所以T->firstchild为T的子节点,T->nextsibling为T的右兄弟。而非普遍意义上的二叉树的左右孩子结点。
s1+1是因为需要加上父节点T,而s2计算的是T的右兄弟的深度,所以不需+1。
该算法充分展示了递归的风采。