我是数据结构中树概念的新手。我可以为简单的树问题编写一个线性代码,但是当我尝试将其转换为递归代码时,我非常挣扎。我无法为复杂的树问题编写递归代码。但我知道树的运作方式。当我尝试将线性代码转换为问题的递归时,我遇到了问题"找到树的高度" 我可以画它并想象纸上的流动。但我无法写一个递归。
答案 0 :(得分:4)
这里的关键是要理解树的每个节点本身就是一棵树。实际上,这是允许您实现递归算法的原因。您可能知道,任何递归算法都需要两部分:
因此,例如,如果我们在Java中实现它:
DataFrame
答案 1 :(得分:1)
任何节点的高度,是其“最高”子节点的高度+ 1.因此,从根开始,您递归调用每个子节点上的查找高度函数,选择最大值,添加1,然后返回值。基本情况是没有子节点的节点,在这种情况下返回0。