0
点赞
收藏
分享

微信扫一扫

剑指 offer34 — 二叉树中和为某一值的路径(js实现)

题目描述

在这里插入图片描述

解题思路

题目中的关键字,“从根节点到叶子结点”、“求路径总和”,看到第一个关键字想到深度优先遍历,明确这道题考察dfs,dfs注重考察遍历和递归,注意临界条件。

  • DFS coding过程;
  • 当root节点走到null的时候,说明该条路径已经遍历完毕;
  • 当一条路径遍历完毕之后,我们使用浅拷贝的方式将一条路径拷贝进res最终结果数组中;
  • 然后开始返回,核心点,注意每次返回都要将stack数组的最后一个元素清空。

coding过程

var pathSum = function(root, target) {
  const res = [];
  let stack = [];

  function dfs(node){
    if(!node) return null;
    stack.push(node.val);
    let l = dfs(node.left);
    let r = dfs(node.right);
    if(l === null && r === null){
      res.push([...stack])
    }
    stack.pop();
    return
  }
  dfs(root)
  const temp = res.filter((val) => {
    return val.reduce((pre,cur) => pre + cur,0) === target
  })
  return temp
};
举报

相关推荐

0 条评论