我的功能如下
func helper(root: TreeNode?, _ result: [[Int]], _ list: [Int], _ sum: Int, _ total: Int) {
list.append(root!.val)
if(total + root!.val == sum && root?.left == nil && root?.right == nil) {
result.append(list)
}
if(root?.left != nil && sum < total + root!.val) {
helper(root!.left, result, list, sum, total + root!.val)
}
if (root?.right != nil && sum < total + root!.val) {
helper(root!.right, result, list, sum, total + root!.val)
}
}
当我尝试修改list
和result
时,它给了我错误
。我搜索过input
关键字可用于通过引用传递参数,然后可以在本地和外部修改,但我无法使语法正确。我怎样才能使它工作?或者有更好的方法可以修改它们吗?
答案 0 :(得分:1)
您应该在函数签名中使用inout关键字:
func helper(root: TreeNode?, inout _ result: [[Int]], inout _ list: [Int], _ sum: Int, _ total: Int)
使用&#34;&amp;&#34;进行通话例如:
helper(root!.left, &result, &list, sum, total + root!.val)
答案 1 :(得分:0)
您应该在输入输出参数标题下使用inout
而不是input
作为described here。