📅  最后修改于: 2023-12-03 15:17:49.569000             🧑  作者: Mango
在 N 叉树 中从根节点到给定节点的路径是指从根节点开始,沿着一条路径一直到达目标节点的序列,其中每个节点都有从父节点到自身的唯一路径。
我们可以使用深度优先搜索(DFS)来查找从根节点到目标节点的路径。
具体做法如下:
path
用于保存路径,将根节点添加到 path
中。path
中添加该节点。path
。否则,从 path
中删除最后一个节点,继续遍历下一个子节点。None
。下面是 DFS 的 Python 代码实现:
class Solution:
def dfs(self, node: 'Node', target: 'Node', path: List['Node']) -> List['Node']:
# 找到目标节点,返回路径
if node == target:
return path
# 遍历子节点
for child in node.children:
path.append(child)
result = self.dfs(child, target, path)
if result:
return result
path.pop()
# 没有找到目标节点,返回 None
return None
def path(self, root: 'Node', target: 'Node') -> List['Node']:
# 从根节点开始遍历
path = [root]
return self.dfs(root, target, path)
从根节点到给定节点的路径是 N 叉树 中常见的问题,在实际开发中应用广泛。通过 DFS 遍历整个树,可以找到目标节点,并返回从根节点到目标节点的路径。在代码实现时,需要注意路径的存储方式以及如何回溯。