113. Path Sum II

26 年 3 月 2 日 星期一
151 字
1 分钟

113. Path Sum II

Screenshot 2026-03-02 at 11.20.26 am
js
/**
 * Definition for a binary tree node.
 * function TreeNode(val, left, right) {
 *     this.val = (val===undefined ? 0 : val)
 *     this.left = (left===undefined ? null : left)
 *     this.right = (right===undefined ? null : right)
 * }
 */
/**
 * @param {TreeNode} root
 * @param {number} targetSum
 * @return {number[][]}
 */
var pathSum = function (root, targetSum) {
  const path = []
  const ans = []
  let val = 0
  const backTracking = (node) => {
    if (node === null) {
      return
    }
    val += node.val
    path.push(node.val)
    if (node.left === null && node.right === null) {
      if (val === targetSum) {
        ans.push([...path])
      }
    } else {
      backTracking(node.left)
      backTracking(node.right)
    }
    // ⚠️以上要用if else写,不然的话叶子节点也要执行pop操作
    val -= node.val
    path.pop()
  }
  backTracking(root)
  return ans
}

文章标题:113. Path Sum II

文章作者:Sirui Chen

文章链接:https://blog.siruichen.me/posts/113_path_sum_ii[复制]

最后修改时间:


商业转载请联系站长获得授权,非商业转载请注明本文出处及文章链接,您可以自由地在任何媒体以任何形式复制和分发作品,也可以修改和创作,但是分发衍生作品时必须采用相同的许可协议。
本文采用CC BY-NC-SA 4.0进行许可。