var pathSum = function(root, sum) { var res = [] if (!root) return [] var dfs = function (node,visited,total) { if (sum === total && (!node.left && !node.right)) { res.push(visited) return } node.left && dfs(node.left,[...visited,node.left.val],total + node.left.val) node.right && dfs(node.right ,[...visited,node.right.val], total + node.right.val) } dfs(root,[root.val],root.val) return res };