一道算法题,用python初始化一颗二叉树并求解其最短路径的值

发布于 2022-09-01 19:21:37 字数 426 浏览 10 评论 0

题目:
一颗二叉树,每个节点都有自己的值,在二叉树上找到一条路径(根节点到某个叶子节点之间的路线就是路径)上所有节点的值要最小,输出最小的值是多少!这里的最短路径不是按跳数来,而是按节点值的和来,不要搞错了!

示例:
一行的开头如果输入为0,表示结束输入,空节点用null表示

输入:
    5
2       3
0

输出:
7

输入:
                          1
            2                        18
    3             5            null       2
100    1    null    8               null    null
0

输出:
7(1+2+3+1)

应该是用递归解,有懂的朋友能帮忙解答下嘛?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

柳絮泡泡 2022-09-08 19:21:38
def minPathSum(node):
    if not node:
        return 0
    return min(minPathSum(node.left), minPathSum(node.right)) + node.val
鹤仙姿 2022-09-08 19:21:38

应该是树形DP吧

[旋木] 2022-09-08 19:21:38

leetcode上有类似的,不过只是求跳数的题目:https://leetcode.com/problems/minimum-depth-of-binary-tree/

这是我的python实现,你稍微改一下就行

class Solution(object):
    def minDepth(self, root):
        """
        :type root: TreeNode
        :rtype: int
        """
       
        if root is None:
            return 0
        if root.left is None:
            return 1 + self.minDepth(root.right)
        if root.right is None:
            return 1 + self.minDepth(root.left)
        return 1 + min(self.minDepth(root.left), self.minDepth(root.right))
野却迷人 2022-09-08 19:21:37

我觉得是简单dp(瞎说的

人│生佛魔见 2022-09-08 19:21:37

动态规划中的入门问题。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文