活跃农民
- 积分
- 791
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2018-7-28
- 最后登录
- 1970-1-1
|
本帖最后由 luke77gu 于 2020-11-24 02:48 编辑
帮你改了一下,应该就是你存入或者检查seen的时候要存或者check val不是整个node. 你在check的时候应该是笔误少打了个.val
- class Solution:
- def distanceK(self, root: TreeNode, target: TreeNode, K: int) -> List[int]:
- res = []
- seen = []
- self.attachParent(root)
- self.dfs(target, K, seen, res)
- return res
-
- def attachParent(self, node, par = None):
- if node:
- node.par = par
- self.attachParent(node.left, node)
- self.attachParent(node.right, node)
-
- def dfs(self, node, k, seen, res):
- if not node or node.val in seen:
- return
- seen.append(node.val)
- if k == 0:
- res.append(node.val)
- seen.append(node.val)
- return
- self.dfs(node.left, k-1, seen, res)
- self.dfs(node.right, k-1, seen, res)
- self.dfs(node.par, k-1, seen, res)
复制代码 |
|