• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >编程问答 > 一道算法题,用python初始化一颗二叉树并求解其最短路径的值

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

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-07

佚名通过本文主要向大家介绍了最短路径算法,dijkstra最短路径算法,floyd最短路径算法,求最短路径的算法,单源最短路径算法等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:一道算法题,用python初始化一颗二叉树并求解其最短路径的值
描述:

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

示例:
一行的开头如果输入为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)

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


解决方案1:

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))

解决方案2:

应该是树形DP吧

解决方案3:

用php试了下,可以看看https://github.com/chianquan/Mytest/blob/master/shortest.php

解决方案4:

def minPathSum(node):
    if not node:
        return 0
    return min(minPathSum(node.left), minPathSum(node.right)) + node.val

解决方案5:

动态规划中的入门问题。

解决方案6:

我觉得是简单dp(瞎说的

解决方案7:

用java写的,楼主看看

https://github.com/terry83299387/MyTest/blob/master/BinaryTreeMinSum.java


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

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

相关文章

  • 2017-06-07 如何用redis/memcache做缓存层
  • 2017-06-07 窗口继承后,窗体上的控件消失
  • 2017-06-07 pythonjs处理
  • 2017-06-07 Flask,ImportError:NomodulenamedXXX
  • 2017-06-07 Python的asyncio模块在create_connection时是不是同步的?
  • 2017-06-07 (python)想要看Exception实现的源码在什么位置?
  • 2017-06-07 js去掉字符串空格python字符串操作,空格对齐
  • 2017-06-07 Clojure和Scala相比的优劣
  • 2017-06-07 qrsync/log过于巨大无法快速进入同步上传
  • 2017-06-07 如何在Jboss启动时调用Java程序

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • jquery分页代码及算法如何优化
    • flaskjinjia2{%include"aahtml"%}出现jinja2exceptionsTemplateSyntaxError错误
    • linuxshell中如何实现对多个关键字段的排除?
    • (golang)goinferface
    • 正则表达式匹配圆点""的疑问
    • 如何使用正则表达式提取微博中的话题(hashtag)?
    • Python的asyncio模块在create_connection时是不是同步的?
    • python34无法读取中文,无法使用utf-8
    • JBOSSIncompleteDeploymentlisting问题?
    • 存在两块显卡,运行时怎么判断是谁在运行

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有