0

我的功能如下

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)
    }
}

当我尝试修改时listresult它给了我错误。我搜索过该input关键字可用于通过引用传递参数,然后可以在本地和外部对其进行修改,但我无法使语法正确。我怎样才能让它工作?或者有什么更好的方法可以修改它们?

4

2 回答 2

1

您应该在函数签名中使用 inout 关键字:

func helper(root: TreeNode?, inout _ result: [[Int]], inout _ list: [Int], _ sum: Int, _ total: Int)

并使用“&”进行调用,例如:

helper(root!.left, &result, &list, sum, total + root!.val)
于 2016-03-22T16:58:06.097 回答
0

您应该使用inout,而不是input,如标题In -Out 参数下所述。

于 2016-03-21T15:13:09.400 回答