美文网首页
2019-06-14 二叉树的最大路径和

2019-06-14 二叉树的最大路径和

作者: 北子萌 | 来源:发表于2019-06-14 15:21 被阅读0次

本题需要比较以下四种情况的值

1、 root节点本身的值

2、root和左子树的值

3、root和右边子树的值

4、root和左右子树的值

需要注意的是,第四种情况下,root的左右节点中只选取一条路径,不能跨国左右子树的节点,这是因为选一条路径

需要在局部维护一个sum变量,全局维护一个maxSum变量。一旦在递归中计算的子树发现比maxSum大的时候,就用sum去更新maxSum节点。这样可以有效求出来究竟是子树的值较大还是横跨根节点的值更大

在每一层中,如果左右子树的节点值为正整数,就加上左子树和右子树的值。之后进入比较,查看是否有更新,如果没有,返回maxSum作为当前根节点的子树的最大值得路径

代码实现核心如下:

代码截图

可以看到,当且仅当左右子树大于0的时候,才会返回加和,否则只使用root的值作为返回

相关文章

网友评论

      本文标题:2019-06-14 二叉树的最大路径和

      本文链接:https://www.haomeiwen.com/subject/zrhpfctx.html