BM29 二叉树中和为某一值的路径(一)

题目描述

image

思路分析

采用递归的方法,左(右)子树的sum = sum - root.val
每次都减去当前的root值,如果左子树或者右子树的节点值等于sum,则说明找到了,返回true,否则当root为空时,退出当前递归,说明找不到,返回false

代码参考

// 传递过来的每一个节点,我们都要思考,当前节点需要做什么,下一步递归条件是什么,退出条件是什么
function hasPathSum (root, sum) {
  // 递归退出条件
  if (!root) return false
  // 叶子节点,且叶子节点符合要求,即为找到了
  if (!root.left && !root.right && root.val === sum) return true
  // 没有找到,则继续向下递归查找,左子树或右子树有一条符合条件便返回
  return hasPathSum(root.left, sum - root.val) || hasPathSum(root.right, sum - root.val)
}
posted @ 2023-01-02 21:23  含若飞  阅读(14)  评论(0编辑  收藏  举报