二叉树中和为某一值的门路
题目剖析
先序遍历 + 门路记录
题解
// 每次递归了门路退出之后都要回复现场,不然就乱套了
// 也就是说你 54117 之后满足条件退出门路了
// 而后就会返回上一个节点, 此时就须要把列表的最初一个值 7 删除,不然在间接加就是 547112 了就不对了
// 得把最初一个 pop 进来能力往回回溯
留神
- 值得注意的是,记录门路时若间接执行 res.append(path),则是将 path 对象退出了 res;后续 path 扭转时,res 中的 path 对象也会随之扭转。
- 正确做法:res.append(list(path)),相当于复制了一个 path 并退出到 res。
- Java 就是 new 一个新对象 new LinkedList(path)