递归版实现时的疑问
来源:8-9 LeetCode:112. 路径总和

慕仰2595893
2021-01-20
请问老师,我想让第一次sum === targetSum时就返回true,不再遍历剩下的节点了,所以在20行那里写了return true。但是为什么它还是遍历完了所有节点呢?并且打印dfs(root,root.val)也不是true,而是undefined。
写回答
2回答
-
慕莱坞3126862
2021-04-04
我也遇到了这个问题。递归函数dfs中返回true无法作用到主函数hasPathSum中,最终执行的仍然是return false。至于为什么遍历完所有节点,因为递归是栈的结构,你在出栈某一个层级中返回参数,或者停止继续递归调用都不会影响当前元素之前的栈中的元素。那些元素依旧会被弹出来依次执行。
00 -
lewis
2021-01-24
按说如果return true,递归会终止,建议多打几个log
00
相似问题