递归返回的二叉树深度值是怎么计算出来的?

img


这里的左子树和右子树mn是怎么计算出来的?又没++运算,求深层次解答。

递归总体来说是一个逻辑性很强很复杂的结构。想弄清递归的结构比较关键的地方在于找到递归终止条件。
先回答你的问题叭,这个深度的++在运算中确实没有。但是,当一个结点的左右子树深度都计算出来(也就是m,n有值)的时候,返回给这个结点的父节点时返回的是m,n中大的数+1。这个程序就是在这个时候完成所谓的++。
找到递归终止条件是该结点为空结点,那么就返回给该结点的父节点深度为0。而整体的深度计算规则是,任意一个结点的深度为该结点左右子树深度值大的一方加一。
整体的计算顺序就如同后序遍历一样。