113. Path Sum II

harry xie
2024-09-19 07:51:33

解題程式碼

var pathSum = function (root, targetSum) {
  if (!root) return [];
  const res = [];

  const DFS = (node, path, curSum) => {
    if (!node.left && !node.right && curSum === targetSum) {
      res.push(path);
      return;
    }

    if (node.left) DFS(node.left, [...path, node.left.val], curSum + node.left.val);
    if (node.right) DFS(node.right, [...path, node.right.val], curSum + node.right.val);
  };
  DFS(root, [root.val], root.val);

  return res;
};

解題思路演算法

這題使用 DFS 解題

解法的時間空間複雜度

時間複雜度: O(n)
空間複雜度: O(n)，n 為 tree height

參考資料