递归版实现时的疑问

来源: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。至于为什么遍历完所有节点,因为递归是栈的结构,你在出栈某一个层级中返回参数,或者停止继续递归调用都不会影响当前元素之前的栈中的元素。那些元素依旧会被弹出来依次执行。

0
0

lewis

2021-01-24

按说如果return true,递归会终止,建议多打几个log

0
0

JavaScript版数据结构与算法 轻松解决前端算法面试

夯实算法基础,填补技术短板,助力面试考题最后一公里

2481 学习 · 683 问题

查看课程