本帖最后由 luke77gu 于 2020-11-24 02:48 编辑
帮你改了一下,应该就是你存入或者检查seen的时候要存或者check val不是整个node. 你在check的时候应该是笔误少打了个.val
[Python] 纯文本查看 复制代码 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) |