题目描述:给出一棵二叉树,寻找一条路径使其路径和最大,路径可以在任一节点中开始和结束(路径和为两个节点之间所在路径上的节点权值之和)
样例:给出一棵二叉树:
1
/ \
2 3
样例:给出一棵二叉树:
1
/ \
2 3
返回 6
这里面有一个默认的事实,那就是不管这个路径在哪,他都肯定有一个最高的节点。我们不妨可以设这个节点为A,以A为最高节点的路径的最大长度是多少呢?
A有左右两个孩子(当然孩子可以是空),以每个孩子为起点,向下延伸,可以得到很多条单向的路径,这其中当然有一个最大路径。我们将以左孩子为起点的最大路径的值记为left_val,将以右孩子为起点的最大路径的值记为right_val,显然以A为最高点的最大路径只可能有以下四种情况:
1. 若left_val < 0, 且right_val < 0, 那最大路径为A节点本身: