📅  最后修改于: 2023-12-03 15:25:45.120000             🧑  作者: Mango
本篇介绍了如何在二叉树中打印出从根节点到叶子节点的最短路径。这个问题可以通过深度优先搜索(DFS)解决。
从根节点开始,一直往下直到叶子节点。我们可以使用前序遍历来模拟这个过程。在前序遍历的过程中,我们记录当前路径,并在访问到叶子节点时判断是否为当前最短路径。如果是,则更新最短路径。
下面是使用递归方式实现最短路径查找的 Python 代码:
class Solution:
def findShortestPath(self, root: TreeNode) -> List[int]:
self.path = []
self.shortest_path = []
self.dfs(root)
return self.shortest_path
def dfs(self, node: TreeNode):
if not node:
return
self.path.append(node.val)
if not node.left and not node.right:
if not self.shortest_path or len(self.path) < len(self.shortest_path):
self.shortest_path = self.path[:]
else:
self.dfs(node.left)
self.dfs(node.right)
self.path.pop()
本篇介绍了如何在二叉树中找到从根节点到叶子节点的最短路径,即打印二叉树中第一个最短的根到叶路径。这个问题可以通过深度优先搜索(DFS)解决,使用递归方法实现。