试图理解python代码中的递归

时间:2016-12-29 19:33:23

标签: python recursion

我试图理解这个使用递归来查找二叉树中最大路径的代码:

l

我不明白这将如何找到最大路径。当它以递归方式调用自身时,会不断将rls重置为0,将rsNone重置为l = max(l, 0)

编辑:

正如所建议的那样,我在一个简单的二叉树上测试了它,其中5作为根,LC:2和RC:3,节点3也有LC:4。

我得到了以下结果:(在r = max(r, 0)l = max(l, 0)行之后打印:

iteration1:l = 2,ls = 2,r = 0,rs =无

iteration2:l = 4,ls = 4,r = 0,rs =无

iteration3:l = 2,ls = 2,r = 7,rs = 7

从某种意义上说 - 它设法将最大一边和为12,最大路径总和为14(这是正确的)。即使在使用数字后,我也不明白代码是如何得出答案的。

此部分代码的重点是什么:select distinct a. patient_id from mytable a inner join mytable b on a.patient_id=b.patient_id where a.cpt_code='2022F' and b.cpt_code='3060F' - 我删除了它并且答案保持不变?

来源:https://discuss.leetcode.com/topic/27059/12-lines-of-python-code-fast-and-easy-to-understand

0 个答案:

没有答案