📌  相关文章
📜  打印二叉树中第一个最短的根到叶路径(1)

📅  最后修改于: 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)解决,使用递归方法实现。