摘要: 问题给出一个二叉树,找到其中的最大路径和。路径可以从树中任意一个节点开始和结束。例如:给出如下二叉树, 1 / \ 2 3返回6。初始思路为了简化分析,我们先假设二叉树中所有节点的值都是正数。通过观察可以发现,一棵二叉树的最大路径,就是其左子树的最大路径加上右子树的最大路径。看起来可以从根节点出发通过深度优先递归来求解:函数 查找路径 如果是叶子节点,返回叶子节点的值 如果不是叶子节点 左子树路径和 = 查找路径(左子树) 右子树路径和 = 查找路径(右子树) 如果左子树路径+右子树路径和+当前节点值 > 当前最大路径,更新最大路径 返回左子树路径+右子树路径和+当... 阅读全文
posted @ 2013-06-08 22:02 Shawnone 阅读(4637) 评论(0) 推荐(0) 编辑