迭代中的结果拷贝


def sumPathHelper(root, target, curr, result):
	if not root: return
	target -= root.val
	if root.left is None and root.right is None and target == 0:
#在代码片段里,并没有修改该iteration中的局部变量curr,因此,
#result.append(curr + #[root.val]) 中不需要list深拷贝
		result.append(curr + [root.val])
	if root.left:
		sumPathHelper(root.left, target, curr + [root.val], result)
	if root.right:
		sumPathHelper(root.right, target, curr + [root.val], result)


def sumPathHelper2(root, target, curr, result):
	if not root: return
	target -= root.val
	curr.extend([root.val])
	if root.left is None and root.right is None and target == 0:
#代码片段中对curr进行了操作,如果使用result.append(curr)的话,result的值会根据curr的改变而被修改,
#因此需要list(curr)重新生成一个对象加入到result中,保证结果的正确
		result.append(list(curr))
	if root.left:
		sumPathHelper2(root.left, target, curr, result)
	if root.right:
		sumPathHelper2(root.right, target, curr, result)
	curr.pop()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值